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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2012, 17:04   #1
dekuk
 
Аватар для dekuk
 
Регистрация: 11.09.2011
Сообщений: 6
По умолчанию Как нарисовать квадрат по клику мыши?

Есть сетка из квадратов(развертка кубика рубика) необходимо её расскрасить. но добавить в обработчик клика
Код:
e.Graphics.FillRectangle(br[4], 80, 200, 40, 40);
в данном случае не подходит, тк EventArgs другое. Как быть?

Код:
private void Form2_Paint(object sender, PaintEventArgs e)
        {           
            Pen blackPen = new Pen(Color.FromArgb(255, 0, 0, 0), 2);
            for (int i = 40; i <= 480; i=i+40 )
                for (int j = 160; j <= 240; j = j + 40)                
                    e.Graphics.DrawRectangle(blackPen, i, j, 40, 40);
            for (int i = 160; i <= 240; i = i + 40)
                for (int j = 40; j <= 360; j = j + 40)
                    e.Graphics.DrawRectangle(blackPen, i, j, 40, 40);
        }

private void Form2_MouseClick(object sender, MouseEventArgs e)
        {
            Setcolor();
            int x, y;
            x = e.Location.X;
            y = e.Location.Y;
dekuk вне форума Ответить с цитированием
Старый 04.07.2012, 11:50   #2
Maxvalue
Пользователь
 
Аватар для Maxvalue
 
Регистрация: 03.07.2012
Сообщений: 18
По умолчанию

легче сетку создать как массив обьектов квадратов. и по координатам вычислять по какому щелкнули, в нем и менять свойство цвета.

P/S
а не проще натаскать на форму кнопок и по клику перекрашивать

Последний раз редактировалось Maxvalue; 04.07.2012 в 12:52.
Maxvalue вне форума Ответить с цитированием
Старый 04.07.2012, 15:00   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
и по координатам вычислять по какому щелкнули, в нем и менять свойство цвета.
применить формулу куда проще будет.
не трудно же перевести координаты клика в номер трети.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.07.2012, 15:50   #4
dekuk
 
Аватар для dekuk
 
Регистрация: 11.09.2011
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Maxvalue Посмотреть сообщение
P/S
а не проще натаскать на форму кнопок и по клику перекрашивать
54 кнопки? нет уж, спасибо)

я уже решил проблему так: в обработчик клика добавил
Код:
PaintEventArgs g = new PaintEventArgs(this.CreateGraphics(), ClientRectangle);
и теперь все рисуется. А вообще - да проще создать массив квадратов, что-то сразу я не подумал
dekuk вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нарисовать квадрат Dima-War Общие вопросы C/C++ 6 19.03.2012 22:50
Закрытие окна по клику мыши tumanovalex Qt и кроссплатформенное программирование С/С++ 2 29.05.2011 19:29
Нарисовать квадрат! SwiP Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 17 02.02.2011 19:23
нарисовать квадрат с длиной стороны 100 пикселей, используя процедуру linerel(x,y:integer) Кася_ Помощь студентам 6 23.02.2009 19:13