Изменить цвет строки)))

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
Studentka
Сообщения: 1
Зарегистрирован: 04 апр 2010, 23:35

Код: Выделить всё

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace lab5_2
{
    public partial class Form1 : Form
    {
        Pen myPen;
        System.Drawing.Graphics graphicsobj;
        Color myColor;
        RadioButton cs = new RadioButton();
       
        public Form1()
        {
            InitializeComponent();
            graphicsobj = this.CreateGraphics();
        }
       
        private void radioButton4_CheckedChanged(object sender, EventArgs e)
        {
           myPen = new Pen(System.Drawing. Black, 5);
            
        }

        private void chooseColor()
        {
            if (radioButton4.Checked == true)
            {
                if (radioButton1.Checked == true)
                {
                    cs.Click += new EventHandler(radioButton1_CheckedChanged);
                  
                }
                if (radioButton2.Checked == true)
                {
                    cs.Click += new EventHandler(radioButton2_CheckedChanged);
                }
                if (radioButton3.Checked == true)
                {
                    cs.Click += new EventHandler(radioButton3_CheckedChanged);

                }
            }
        }
        private void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
            myPen.Color = System.Drawing.Color.Green;
           
        }

        private void radioButton6_CheckedChanged(object sender, EventArgs e)
        {
            graphicsobj.DrawLine(myPen, 20, 20, 210, 200);
            

        }

        private void radioButton7_CheckedChanged(object sender, EventArgs e)
        {

        }

        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {

         myPen.Color = System.Drawing.Color.Blue;
        }
        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
         myPen.Color = System.Drawing.Color.Blue;
        }

    }
}

Код работает, но получается,что работает он следующим образом: создается сначала объект типа Pen. Потом этому объекту присваивается цвет при нажатии радиобатона. А потом рисуется линия. Но есть один недостаток и нет идей совсем, как его исправить. Получается,что я выбрала цвет и создалась линия, когда я нажимаю на другую кнопку(радиобатон),чтобы снова поменять цвет,то цвет не меняется. Мне нужно закрывать форму,заново ее перезапускать и тогда уже будет линия другого цвета. Подскажите,пожалуйста, как можно улучшить код,чтобы второй раз можно было бы выбрать цвет в этой же форме,нужно ипользовать радиобатоны.
Ответить