Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.12.2017
Сообщений: 8

Заливка формы по нажатию

11.05.2018, 18:53. Показов 2366. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер! Очень короткий и глупый вопрос
имеется программа, в ходе которой создается фигура(в данном случае будет круг), и по нажатию клавиши надо чтобы эта фигура заливалась определенным цветом. Вот что я имею сейчас, создается круг, далее он сразу же заливается(надо чтобы он заливался по нажатию клавиши)
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
  
private void pictureBox1_Paint(object sender, PaintEventArgs e) 
        {
            void Display(Graphics g) 
            {
                Pen aPen = new Pen(Color.Black);             
                g.DrawEllipse(aPen, 150, 90, x, x);   //прорисовка круга         
                
                SolidBrush garyBrush = new SolidBrush(Color.Gray); //сразу заливка круга
                g.FillEllipse(garyBrush, 150, 90, x, x);
            }
           Display(e.Graphics);
        }
Что мне НУЖНО

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 private void pictureBox1_Paint(object sender, PaintEventArgs e) //picturebox for krug
        {
            void Display(Graphics g) 
            {
                Pen aPen = new Pen(Color.Black);             
                g.DrawEllipse(aPen, 150, 90, x, x);                        
            }
           Display(e.Graphics);
        }
 
        private void button5_Click(object sender, EventArgs e) // код для заливки круга при нажатии клавиши
        {
       // не знаю как адаптировать этот код и что написать в этом событии, постоянно натыкаюсь на мелкие глупые ошибки
               // SolidBrush garyBrush = new SolidBrush(Color.Gray);
               // g.FillEllipse(garyBrush, 150 , 90 , x, x);
        }
Очень надеюсь на помощь, спасибо
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.05.2018, 18:53
Ответы с готовыми решениями:

Как отловить закрытие формы по нажатию на крестик в правом верхнем углу формы
Обычный обработчик не катит: нужно закрыть форму в процессе работы программы

Градиентная заливка формы
using System; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; ...

Заливка формы и вывод сетки
Добрый день. Разрабатываю игру "Змейка" и столкнулся с такой проблемой: хочу залить форму цветом и вывести на ней сетку. Программа...

4
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
11.05.2018, 19:12
Можно вот так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        bool isFilled = false;
 
        private void pictureBox1_Paint(object sender, PaintEventArgs e) 
        {
            void Display(Graphics g) 
            {
                Pen aPen = new Pen(Color.Black);             
                g.DrawEllipse(aPen, 150, 90, x, x);   //прорисовка круга         
                
                if(isFilled)
                {
                    SolidBrush garyBrush = new SolidBrush(Color.Gray); //сразу заливка круга
                    g.FillEllipse(garyBrush, 150, 90, x, x);
                }
            }
           Display(e.Graphics);
        }
 
        private void button5_Click(object sender, EventArgs e) // код для заливки круга при нажатии клавиши
        {
            isFilled = true;
            pictureBox1.Invalidate();
        }
Добавлено через 5 минут
UPD. Только сейчас обратил внимание... Это что за конструкция у Вас такая странная:
C#
1
2
3
private void pictureBox1_Paint(object sender, PaintEventArgs e) 
        {
            void Display(Graphics g)
???

Добавлено через 4 минуты
Наверное, все таки как то так должно быть:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        void Display(Graphics g) 
        {
           Pen aPen = new Pen(Color.Black);             
           g.DrawEllipse(aPen, 150, 90, x, x);   //прорисовка круга         
                
           if(isFilled)
           {
               SolidBrush garyBrush = new SolidBrush(Color.Gray); //сразу заливка круга
               g.FillEllipse(garyBrush, 150, 90, x, x);
           }
        }
        private void pictureBox1_Paint(object sender, PaintEventArgs e) 
        {
           Display(e.Graphics);
        }
Либо так:
C#
1
2
3
4
5
6
7
8
9
10
11
        private void pictureBox1_Paint(object sender, PaintEventArgs e) 
        {
           Pen aPen = new Pen(Color.Black);             
           g.DrawEllipse(aPen, 150, 90, x, x);   //прорисовка круга         
                
           if(isFilled)
           {
               SolidBrush garyBrush = new SolidBrush(Color.Gray); //сразу заливка круга
               g.FillEllipse(garyBrush, 150, 90, x, x);
           }
        }
0
0 / 0 / 0
Регистрация: 21.12.2017
Сообщений: 8
11.05.2018, 20:07  [ТС]
Спасибо большое!
Еще вопрос появился
Можно ли с помощью какого-нибудь другого функционала выбрать цвет для фигуры? Создавать для каждого отдельного цвета отдельную кнопку такая себе затея...
0
 Аватар для Shogun31337
557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
11.05.2018, 20:12
Цитата Сообщение от Multiple Посмотреть сообщение
Можно ли с помощью какого-нибудь другого функционала выбрать цвет для фигуры? Создавать для каждого отдельного цвета отдельную кнопку такая себе затея...
Не очень понял суть вопроса... Если речь идет просто о выборе цвета пользователем, то для этого есть ColorDialog. Если не об этом, то поясните, что Вы имеете в виду.
0
0 / 0 / 0
Регистрация: 21.12.2017
Сообщений: 8
11.05.2018, 22:28  [ТС]
Да, я имел ввиду реализацию ColorDialog в этом коде

Добавлено через 2 часа 6 минут
Я сделал сам, спасибо еще раз
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.05.2018, 22:28
Помогаю со студенческими работами здесь

Заливка рисунков произвольной формы
Есть ли в Java аналог WinApi-ной функции FloodFill, или может собственный алгоритм у кого есть - буду рад любой помощи. Заранее...

Заливка областей произвольной формы
Есть такая проблема: В файле хранятся координаты линий. я их вывожу в Image1, получается из линий карта с районами. Каждый район нужно...

Изменение цвета формы в зависимости от положения формы по нажатию кнопки
Перерыл весь интернет, до самого не доходит, смысл задания разделить экран на четыре части равных, и если в первой части форма то цвет...

Заливка картинки, а потом заливка заливки и прочее
В общем требуется вот что: Единственное, что у меня получилось сделать - черную заливку поверх изображения. Но проблема еще в том, что...

Как передать value с input одной формы, к другой input формы, по нажатию кнопки
Как передать value с input одной формы, к другой input формы, по нажатию кнопки скрипт function id_old_to_id_new (id_old,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru