Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2010, 23:52   #1
_Studentka_
Пользователь
 
Аватар для _Studentka_
 
Регистрация: 03.11.2009
Сообщений: 24
По умолчанию Как изменить цвет линии?

Код:
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. Потом этому объекту присваивается цвет при нажатии радиобатона. А потом рисуется линия. Но есть один недостаток и нет идей совсем, как его исправить. Получается,что я выбрала цвет и создалась линия, когда я нажимаю на другую кнопку(радиобатон),чтобы снова поменять цвет,то цвет не меняется. Мне нужно закрывать форму,заново ее перезапускать и тогда уже будет линия другого цвета. Подскажите,пожалуйста, как можно улучшить код,чтобы второй раз можно было бы выбрать цвет в этой же форме,нужно ипользовать радиобатоны.
_Studentka_ вне форума Ответить с цитированием
Старый 05.04.2010, 00:01   #2
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

перерисовать поверх линии линию с новым цветом
dampirik вне форума Ответить с цитированием
Старый 05.04.2010, 00:08   #3
_Studentka_
Пользователь
 
Аватар для _Studentka_
 
Регистрация: 03.11.2009
Сообщений: 24
По умолчанию

Цитата:
Сообщение от dampirik Посмотреть сообщение
перерисовать поверх линии линию с новым цветом


я уже совсем замучалась. Я вот тоже задумывалась. Может как-то удалить линию и создать новую. А может использовать свойства. Если у меня логика неправильная,подскажите,пожалуйста, как тогда реализовать?
_Studentka_ вне форума Ответить с цитированием
Старый 05.04.2010, 00:29   #4
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Ну... я сильно в графику не вдавался.. я просто зарисовывал цветом и все) можно такую-же линию или весь фон)
А если просто цвет у линии сменить, то самое просто перерисовать ее сновым цветом...
dampirik вне форума Ответить с цитированием
Старый 05.04.2010, 00:40   #5
_Studentka_
Пользователь
 
Аватар для _Studentka_
 
Регистрация: 03.11.2009
Сообщений: 24
По умолчанию

просто сложно понять до конца,что в моем коде нужно добавить,чтобі осуществилась перерисовка!!=(((
_Studentka_ вне форума Ответить с цитированием
Старый 05.04.2010, 00:59   #6
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Код:
Pen myPen;
обьявили перо
Код:
myPen = new Pen(System.Drawing. Black, 5);
создали перо черного цвета толщиной 5 пикселей
Код:
myPen.Color = System.Drawing.Color.Green;
изменили цвет пера на зеленый
Код:
graphicsobj.DrawLine(myPen, 20, 20, 210, 200);
нарисованили линию пером от точки 20,20 до 210,200


Вставим сюда перерисовку)
До:
Цитата:
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;
}
После:
Цитата:
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{

myPen.Color = System.Drawing.Color.Blue;
graphicsobj.DrawLine(myPen, 20, 20, 210, 200);
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
myPen.Color = System.Drawing.Color.Blue;
graphicsobj.DrawLine(myPen, 20, 20, 210, 200);
}
Можно пересоздать перо)
Цитата:
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
myPen = new Pen(System.Drawing.Blue, 5);
graphicsobj.DrawLine(myPen, 20, 20, 210, 200);
}
ЗЫ.Помог жми плюсиК)))
dampirik вне форума Ответить с цитированием
Старый 05.04.2010, 01:08   #7
_Studentka_
Пользователь
 
Аватар для _Studentka_
 
Регистрация: 03.11.2009
Сообщений: 24
По умолчанию

Очень помог!! 100000000+++++++ ))))) За такую помощь хочется тебя и тортиком с кофе угостить))) УРРРАААА!!! Спасибо огромное!!!))
_Studentka_ вне форума Ответить с цитированием
Старый 05.04.2010, 01:16   #8
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Да... от тортика я не отказался бы)
dampirik вне форума Ответить с цитированием
Старый 05.04.2010, 01:18   #9
_Studentka_
Пользователь
 
Аватар для _Studentka_
 
Регистрация: 03.11.2009
Сообщений: 24
По умолчанию

Цитата:
Сообщение от dampirik Посмотреть сообщение
Да... от тортика я не отказался бы)
Если ты в Киеве живешь, то могу и угостить=))
_Studentka_ вне форума Ответить с цитированием
Старый 05.04.2010, 18:28   #10
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Вот как всегда не везет) спасибо за приглашение)
dampirik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как изменить цвет CheckBox’a --=SaNitinDG=- Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 18.01.2010 13:53
КАК ИЗМЕНИТЬ ЦВЕТ ФОНА (ПАСКАЛЬ) mistertvister Помощь студентам 2 19.12.2009 23:10
Как с помощью JavaScript изменить цвет фона ячеек в таблице,так что бы можно было выбрать цвет из списка Gotessa JavaScript, Ajax 1 09.05.2009 16:05
Как изменить цвет заголовка окна CraZZy RabbIt Общие вопросы Delphi 3 20.02.2009 15:47
Как изменить цвет Михаил Юрьевич Общие вопросы Delphi 5 14.01.2008 17:38