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

Программировать графический интерфейс

15.03.2020, 22:03. Показов 1636. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите реализовать в Windows Forms:

При запуске программы на экране в произвольном месте отображается круг. Реализовать эффект перетаскивания круга: при нажатии левой клавиши мыши над кругом тот начинает перемещаться туда, куда перемещается указатель мыши, пока пользователь не отпустит левую клавишу мыши.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.03.2020, 22:03
Ответы с готовыми решениями:

Графический интерфейс
Как сделать чтобы накиданные на форму элементы с включенным докингом не слипались др с др, а были на некотором расстоянии др от др? Почему...

Как подключить БД через графический интерфейс?
Здравствуйте. Пишу курсовой и большой проблемой является подключение БД через графический интерфейс. Как объяснил преподаватель нужен...

Графический интерфейс для игры "Шашки"
Доброго времени суток! Помогите пожалуйста сделать графический интерфейс для шашек. Программу сделал и bmp файл есть, но как всё...

2
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
15.03.2020, 23:18
Лучший ответ Сообщение было отмечено Pop-Chop как решение

Решение

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
using System;
using System.Drawing;
using System.Windows.Forms;
 
namespace ForumWinforms
{
    public partial class Form1 : Form
    {
        private Rectangle _circleRect;
        private Point _dragOffet;
        private Random _rand;
 
        public Form1()
        {
            InitializeComponent();
 
            _rand = new Random();
 
            _circleRect.Size = new Size(50, 50);
            _circleRect.X = _rand.Next(this.ClientSize.Width - _circleRect.Width);
            _circleRect.Y = _rand.Next(this.ClientSize.Height - _circleRect.Height);
 
            Paint += Form1_Paint;
            MouseDown += Form1_MouseDown;
            MouseUp += Form1_MouseUp;
 
        }
        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                Point circleCenter = new Point(_circleRect.X + (_circleRect.Width / 2), _circleRect.Y + (_circleRect.Height / 2));
 
                int dx = e.Location.X - circleCenter.X;
                int dy = e.Location.Y - circleCenter.Y;
 
                int dist = (dx * dx + dy * dy);
                int circleW = _circleRect.Width / 2;
 
                if (dist <= circleW * circleW)
                {
                    _dragOffet = new Point(e.Location.X - _circleRect.X, e.Location.Y - _circleRect.Y);
                    MouseMove += Form1_MouseMove;
                }
            }
 
        }
 
        private void Form1_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                MouseMove -= Form1_MouseMove;
            }
        }
        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            _circleRect.Location = new Point(e.Location.X - _dragOffet.X, e.Location.Y - _dragOffet.Y);
            Invalidate();
        }
 
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.DrawEllipse(Pens.Black, _circleRect);
        }
    }
}
1
239 / 150 / 41
Регистрация: 26.01.2019
Сообщений: 545
16.03.2020, 00:06
Цитата Сообщение от Pop-Chop Посмотреть сообщение
в произвольном месте
для этого используй рандомайзер с максимальными значениями по X и Y от нуля и до ширины и высоты формы
Цитата Сообщение от Pop-Chop Посмотреть сообщение
отображается круг
для этого есть DrawEllipse Метод
Цитата Сообщение от Pop-Chop Посмотреть сообщение
при нажатии левой клавиши мыши
вешай на событие формы MouseDown, с отслеживанием координат курсора над кругом
Цитата Сообщение от Pop-Chop Посмотреть сообщение
перемещаться туда, куда перемещается указатель мыши, пока пользователь не отпустит левую клавишу мыши
Соответственно на событие MouseUp
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.03.2020, 00:06
Помогаю со студенческими работами здесь

База данных "учебный план специальности". GUI. Графический интерфейс. Пользовательский интерфейс
Всем привет. Свалилась на меня, значит, курсовая по прологу. Все бы ничего, да реализовать ее надо через графический интерфейс. На турбо...

Графический интерфейс
вот у меня есть программа перебор сочетаний с повторением и без, и подсчет по формуле кол-во этих сочетаний....как мне связать кнопки с...

Графический интерфейс
Здравствуйте! Мне нужно реализовать графический интерфейс, а именно: окно, в котором задаются параметры и строится треугольник. Туплю в...

Графический интерфейс
Решил сделать форму при массива графических элементов. Нужно было обращаться к ним. Сделал такой метод в родителе public void...

Графический интерфейс
Приветствую. Есть скрипт для питона, возможно ли ему написать графическую оболочку с возможностью изменения одной строчки в скрипте? Так...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru