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

При нажатии кнопки мыши рисуется окружность

09.09.2015, 22:51. Показов 1303. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
После нажатия левой кнопки мыши нужно, чтобы рисовалась точка, но у меня она появляется и сразу пропадает. Так же на форме присутствуют другие изображения.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_MouseClick(object sender, MouseEventArgs e)
        {
            label1.Text = e.Location.ToString();
            if (e.Button == MouseButtons.Left)
            {
                DrawCircle(e.X, e.Y);
            }
        }
        
 
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            //Задаем цвет и толщину пера:
            Pen myPen = new Pen(Color.Black, 1);
            Pen BluePen = new Pen(Color.Blue, 1);
            Pen RedPen = new Pen(Color.Red, 1);
            Pen GreenPen = new Pen(Color.Green, 1);
            Pen YellowPen = new Pen(Color.Yellow, 1);
            //Рисуем линию:
            e.Graphics.DrawLine(myPen, 0, 0, this.ClientSize.Width, this.ClientSize.Height);
            e.Graphics.DrawLine(myPen, 0, this.ClientSize.Height, this.ClientSize.Width, 0);
            e.Graphics.DrawEllipse(Pens.Black, 0, 0, 75, 75);
            e.Graphics.DrawEllipse(BluePen, 0, this.ClientSize.Height-75, 75, 75);
            e.Graphics.DrawEllipse(RedPen, this.ClientSize.Width / 2 - 75 / 2, this.ClientSize.Height / 2 - 75 / 2, 75, 75);
            e.Graphics.DrawEllipse(GreenPen, this.ClientSize.Width-75, this.ClientSize.Height-75, 75, 75);
            e.Graphics.DrawEllipse(YellowPen, this.ClientSize.Width-75, 0, 75, 75);
            //Высвобождаем память, выделенную объекту myPen:
            myPen.Dispose();
            BluePen.Dispose();
            RedPen.Dispose();
            GreenPen.Dispose();
            YellowPen.Dispose();
            this.Invalidate();
            this.Refresh();
        }
 
        private void DrawCircle(int x, int y)
        {
            Graphics gr = CreateGraphics();
            gr.DrawEllipse(Pens.Black, x, y, 10, 10);
            gr.Dispose();
            this.Invalidate();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
 
        }
 
        private void Form1_Resize(object sender, EventArgs e)
        {
            this.Invalidate();
        }
 
        
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.09.2015, 22:51
Ответы с готовыми решениями:

При нажатии на кнопку не рисуется окружность
Товарищи подскажите , что не правильно ? при нажатии на кнопку не рисуется окружность.. using System; using...

При нажати левой кнопки мыши в месте нажатия отображается зеленый кружок, а при нажатии правой кнопки мыши красный квад
При нажати левой кнопки мыши в месте нажатия отображается зеленый кружок, а при нажатии правой кнопки мыши красный квадрат. При повторном...

При нажатии правой кнопки мыши на форме с нее удаляются все кнопки
Написать программу, динамически порождающую на окне кнопки или метки. Левый верхний угол элемента управления определяется местоположением...

2
 Аватар для Sanya_sa
912 / 816 / 333
Регистрация: 03.02.2015
Сообщений: 5,276
Записей в блоге: 9
09.09.2015, 23:46
Сохранение цвета для фигур DrawPath

Не совсем то но принципы одни.
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
10.09.2015, 01:21
Цитата Сообщение от visagaboy Посмотреть сообщение
//Высвобождаем память, выделенную объекту myPen:
Используем using:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void Form1_Paint(object sender, PaintEventArgs e) {
    //Задаем цвет и толщину пера:
 
    using (Pen  myPen = new Pen(Color.Black, 1),
                BluePen = new Pen(Color.Blue, 1),
                RedPen = new Pen(Color.Red, 1),
                GreenPen = new Pen(Color.Green, 1),
                YellowPen = new Pen(Color.Yellow, 1)) {
        //Рисуем линию:
        e.Graphics.DrawLine(myPen, 0, 0, this.ClientSize.Width, this.ClientSize.Height);
        e.Graphics.DrawLine(myPen, 0, this.ClientSize.Height, this.ClientSize.Width, 0);
        e.Graphics.DrawEllipse(Pens.Black, 0, 0, 75, 75);
        e.Graphics.DrawEllipse(BluePen, 0, this.ClientSize.Height - 75, 75, 75);
        e.Graphics.DrawEllipse(RedPen, this.ClientSize.Width / 2 - 75 / 2, this.ClientSize.Height / 2 - 75 / 2, 75, 75);
        e.Graphics.DrawEllipse(GreenPen, this.ClientSize.Width - 75, this.ClientSize.Height - 75, 75, 75);
        e.Graphics.DrawEllipse(YellowPen, this.ClientSize.Width - 75, 0, 75, 75);
    }
}
А вообще для перьев с толщиной 1 можно использовать системные: Pens.Black, Pens.Blue и т.д.
Цитата Сообщение от visagaboy Посмотреть сообщение
у меня она появляется и сразу пропадает
Рисовать нужно в событии Paint.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.09.2015, 01:21
Помогаю со студенческими работами здесь

При нажатии правой кнопки мыши на форме с нее удаляются все кнопки
Написать программу, динамически порождающую на окне кнопки или метки. Левый верхний угол элемента управления определяется местоположением...

Изменение события при нажатии правой кнопки мыши
Добрый вечер. Как можно убрать такое всплывающее окно при нажатии правой кнопки по textbox? Я уже изменила событие MouseDown для...

Открытие второй формы при нажатии правой кнопки мыши
Добрый вечер! Ситуация такова: На главной форме DataGridView1 с данными. Любая строка в нём может выделяться,но другие действия...

При нажатии кнопки мыши случайным образом менять цвет формы
Здравствуйте нужно сделать так чтобы при нажатии кнопки мыши случайным образом менять цвет формы.

Отключить контекстное меню при нажатии правой кнопки мыши в ShockwaveFlash
Как отключить контекстное меню при нажатии ПКМ в ShockwaveFlash? И, если можно, то заменить на свое Пробовал через WndProc, но почему-то...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru