Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/321: Рейтинг темы: голосов - 321, средняя оценка - 4.89
 Аватар для KReedlas
1183 / 805 / 10
Регистрация: 30.08.2010
Сообщений: 2,686

Перемещение формы без границ

20.03.2011, 10:37. Показов 64382. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
А возможно ли перемещать форму мышью по рабочему столу, если у нее нет рамки (FormBorderStyle=None)?
 Комментарий модератора 
Одна тема - один вопрос
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.03.2011, 10:37
Ответы с готовыми решениями:

Нарисовать границы у формы без границ
Народ у меня вопросик можно ли на C# сделать обводку границ формы своим цветом и размером когда у формы отключены границы. Я нарисовал...

Перемещение формы без заголовка
Доброй ночи. Подскажите как можно осуществить перемещение формы без заголовка. Дело в том, что на всю форму tabControl, вверху...

Перемещение формы без бордюров
Здарова! Помогите пожалуйста!!! Срочно нужно: что бы форма none могла перетаскиваться по столу при нажатии на панель. То есть: Зажал...

24
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
10.04.2011, 23:25
Студворк — интернет-сервис помощи студентам
KReedlas, а ты добавь в код, который тебе дал я, и все заработает
0
 Аватар для Enterely
2 / 1 / 1
Регистрация: 07.08.2014
Сообщений: 22
13.06.2015, 20:12
У меня вообще вот так вот получилось, достаточно точно работает. Мышка не скачет, как в примере, который в начале. Так или иначе тема актуальная, и вот готовое решение:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public partial class Form1 : Form
{
    //Координаты мышки
    private int x = 0; private int y = 0;
 
    // Нажатие кнопки мышки
    private void Form1_MouseDown(object sender, MouseEventArgs e)
    {
        x = e.X; y = e.Y;
    }
    // Движение мышки
    private void Form1_MouseMove(object sender, MouseEventArgs e)
    {
        if (e.Button == System.Windows.Forms.MouseButtons.Left)
        {
            this.Location = new System.Drawing.Point(this.Location.X + (e.X - x), this.Location.Y + (e.Y - y));
 
        }
    }
 }
0
0 / 0 / 0
Регистрация: 12.11.2016
Сообщений: 2
30.12.2018, 17:34
Я улучшил код. Теперь не только когда на форму нажимаешь она перемешается но и когда на другие элементы, в моем примере когда на Panel и на Label:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            base.Capture = false;
            panel1.Capture = false;
            label1.Capture = false;
            Message m = Message.Create(base.Handle, 161, new IntPtr(2), IntPtr.Zero);
            this.WndProc(ref m);
        }
 
        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            Form1_MouseDown(sender, e);
        }
 
        private void label1_MouseDown(object sender, MouseEventArgs e)
        {
            Form1_MouseDown(sender, e);
        }
0
 Аватар для Vamaki
1 / 1 / 0
Регистрация: 08.04.2019
Сообщений: 18
03.10.2019, 07:58
Вот решение проблемы изменения прозрачности при перетаскивании:
C#
1
2
3
4
5
6
7
8
9
10
 private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            base.Capture = false;
            this.Opacity = 0.6;
            Message m = Message.Create(base.Handle, 161, new IntPtr(2), IntPtr.Zero);
            this.WndProc(ref m);
            if (e.Button != MouseButtons.Right)
            {
                Opacity = 1;
            }
0
18 / 17 / 3
Регистрация: 07.09.2015
Сообщений: 306
17.11.2020, 04:44
Всем привет) Решил не создавать новую тему, так как проблема точно один в один с этой.
Цитата Сообщение от KReedlas Посмотреть сообщение
FormBorderStyle=None
Цитата Сообщение от KReedlas Посмотреть сообщение
перетаскивание я хотел сделать на элементе panel
Но:
Цитата Сообщение от mak326428 Посмотреть сообщение
Создай обработчик MouseDown и впиши туда это:
C#
1
2
3
base.Capture = false;
        Message m = Message.Create(base.Handle, 0xa1, new IntPtr(2), IntPtr.Zero);
        this.WndProc(ref m);
Цитата Сообщение от mak326428 Посмотреть сообщение
Проще и меньше надо писать
У меня не сработало перетаскивание формы, по элементу Panel...
Самый первый пример nio, сработал с небольшим недостатком (при нажатии и первом движении мыши, форма чуть-чуть прыгает вверх)
Что не так? (What's wrong?)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.11.2020, 04:44

Перемещение формы без рамки
Можно ли перемещать форму без рамки удерживая мышью свободное от компонентов место на форме?Если да то как

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

Перемещение формы None, без бордера
Перемещение формы. Код: private void MainForm_MouseDown(object sender, MouseEventArgs e) { Capture = false; var m =...

Перемещение формы без FormBorderStyle = null;
Здравствуйте! Помогите пожалуйста, вот к примеру у меня есть форма на ней нет ничего кроме 1 панели и самой формы, как сделать так чтобы...

Перемещение за элемент label без бордера формы
смысл на картинке: Использую для перемещения за Panel private void Panelka_MouseDown(object sender, MouseEventArgs e) { ...


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

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru