Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
4 / 4 / 3
Регистрация: 25.03.2017
Сообщений: 180
Записей в блоге: 2
1

Точка создается не в том месте, где надо на форме

16.09.2017, 20:34. Показов 1645. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
сделал приложение которое по клику мышки на форме создает точку с координатами мышки ...
только точка создавалась не в том месте , координаты совпадают , а точка с курсором мышки нет .. что делать?пробовал передвигать форму , расположение точки меняется от расположения курсора ..
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2017, 20:34
Ответы с готовыми решениями:

Сделать так чтобы Form2 появлялась ровно в том же месте где и Form1
{ Form2 form = new Form2(); form.Show(); } как сделать так чтобы Form2 появлялась...

Как сделать так чтобы Form2 появлялась ровно в том же месте где и Form1
Эту тему читал https://www.cyberforum.ru/windows-forms/thread248400.html Но ответы не помогли....

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

Показать картинку на том месте, где кликнули мышью
Вот заготовка программы (игры), но пока хочу лишь чтобы при клике картинка появлялась там, где...

8
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
16.09.2017, 21:03 2
код?
0
4 / 4 / 3
Регистрация: 25.03.2017
Сообщений: 180
Записей в блоге: 2
17.09.2017, 12:22  [ТС] 3
C#
1
2
3
4
5
6
7
8
9
10
11
12
private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            SolidBrush blueBrush = new SolidBrush(Color.Blue);
            // Create points for curve.
            Graphics u = this.CreateGraphics();
            int CursorX = Cursor.Position.X;
            int CursorY = Cursor.Position.Y;
            Rectangle rect = new Rectangle(CursorX, CursorY, 2, 2);
        
 
            u.FillRectangle(blueBrush, rect);
        }
0
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
17.09.2017, 12:32 4
Лучший ответ Сообщение было отмечено student203 как решение

Решение

student203, Вот так надо:
C#
1
2
3
4
5
6
7
8
9
10
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
    SolidBrush blueBrush = new SolidBrush(Color.Blue);
    // Create points for curve.
    Graphics u = this.CreateGraphics();
    Rectangle rect = new Rectangle(e.X, e.Y, 5, 5);
        
 
    u.FillRectangle(blueBrush, rect);
}
Добавлено через 2 минуты
P.S. Cursor.Position - это позиция курсора относительно всего экрана, а не клиенской области приложения
1
4 / 4 / 3
Регистрация: 25.03.2017
Сообщений: 180
Записей в блоге: 2
17.09.2017, 12:38  [ТС] 5
ну я так и догадывался ) спасибо . работает
0
Каждому свое
533 / 219 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
17.09.2017, 12:41 6
student203, удачи
0
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
17.09.2017, 12:48 7
student203,
Рисовать нужно в обработчике Paint формы, а в обработчике MouseDown только создавать список точек:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
List<Point> points = new List<Point>();
 
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
    points.Add(new Point(e.X, e.Y));
    this.Invalidate();
}
 
private void Form1_Paint(object sender, PaintEventArgs e)
{
    foreach(Point point in points)
        e.Graphics.FillRectangle(Brushes.Blue, point.X, point.Y, 2, 2);
}
0
34 / 20 / 4
Регистрация: 07.03.2015
Сообщений: 334
19.09.2017, 01:18 8
Цитата Сообщение от Даценд Посмотреть сообщение
Рисовать нужно в обработчике Paint формы,
Почему?
0
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
19.09.2017, 10:42 9
Цитата Сообщение от Fakels Посмотреть сообщение
Почему?
А сверните-разверните форму и поймёте.
1
19.09.2017, 10:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2017, 10:42
Помогаю со студенческими работами здесь

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

Почему Visual Studio показывает ошибку в том месте, где ее нет?
Почему Visual Studio показывает ошибку в том месте, где ее нет?

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

Массивы! чтобы с++ делила слово на слоги в том месте где стоит буква А
Дана задача написать, чтобы с++ делила слово на слоги в том месте где стоит буква А, например к...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru