Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2012, 17:30   #1
owl1n
Пользователь
 
Регистрация: 01.04.2012
Сообщений: 34
По умолчанию Перемещение формы не за заголовок. Возникли проблемы.

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

Код:
Point last;

        private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                last = MousePosition;
            }
        }

        private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                Point cur = MousePosition;
                int dx = cur.X - last.X;
                int dy = cur.Y - last.Y;
                Point loc = new Point(Location.X + dx, Location.Y + dy);
                Location = loc;
                last = cur;
            }
        }
Но появляются ошибки при компиляции, указывающее на эти строки:

Код:
            this.pictureBox1.MouseDown += new System.EventHandler(this.pictureBox1_MouseDown);
            this.pictureBox1.MouseMove += new System.EventHandler(this.pictureBox1_MouseMove);
Текст ошибки: нет перегруженных методов для каждой из функции, которые соответствовали бы делегату EventHandler

Можете подсказать, в чем ошибка?
owl1n вне форума Ответить с цитированием
Старый 23.07.2012, 18:14   #2
Петррр
Форумчанин
 
Аватар для Петррр
 
Регистрация: 02.09.2011
Сообщений: 336
По умолчанию

Код:
this.MouseDown += delegate
{
    this.Capture = false;
    var msg = Message.Create(this.Handle, 0xa1, new IntPtr(2), IntPtr.Zero);
    this.WndProc(ref msg);
};
Если ты не можешь найти то, ради чего стоит жить, лучше найти то, за что стоит умереть
Петррр вне форума Ответить с цитированием
Старый 23.07.2012, 18:46   #3
owl1n
Пользователь
 
Регистрация: 01.04.2012
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Петррр Посмотреть сообщение
Код:
this.MouseDown += delegate
{
    this.Capture = false;
    var msg = Message.Create(this.Handle, 0xa1, new IntPtr(2), IntPtr.Zero);
    this.WndProc(ref msg);
};
Я так понимаю, что это уже использование WinAPI?
owl1n вне форума Ответить с цитированием
Старый 23.07.2012, 18:58   #4
Петррр
Форумчанин
 
Аватар для Петррр
 
Регистрация: 02.09.2011
Сообщений: 336
По умолчанию

Чистого вызова WinAPI нету. Но можно сделать.
Если ты не можешь найти то, ради чего стоит жить, лучше найти то, за что стоит умереть
Петррр вне форума Ответить с цитированием
Старый 23.07.2012, 21:58   #5
owl1n
Пользователь
 
Регистрация: 01.04.2012
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Петррр Посмотреть сообщение
Чистого вызова WinAPI нету. Но можно сделать.
Не выходит, множественные ошибки в коде..

UPD: ПРоблема решена, спасибо

Последний раз редактировалось owl1n; 23.07.2012 в 22:31.
owl1n вне форума Ответить с цитированием
Старый 27.07.2012, 16:04   #6
masterjada
 
Регистрация: 27.07.2012
Сообщений: 4
По умолчанию

Цитата:
Сообщение от owl1n Посмотреть сообщение
UPD: ПРоблема решена, спасибо
А всем остальным подсказать??
masterjada вне форума Ответить с цитированием
Старый 29.07.2012, 18:15   #7
@SSV
Пользователь
 
Регистрация: 22.07.2012
Сообщений: 16
По умолчанию

Цитата:
Сообщение от masterjada Посмотреть сообщение
А всем остальным подсказать??
Просто тупо вставь в конструктор
Цитата:
public Form1()
{
InitializeComponent();

this.MouseDown += delegate
{
this.Capture = false;
var msg = Message.Create(this.Handle, 0xa1, new IntPtr(2), IntPtr.Zero);
this.WndProc(ref msg);
};

}
Правда у всех своя, а истину не знает ни кто.
@SSV вне форума Ответить с цитированием
Старый 30.07.2012, 09:58   #8
masterjada
 
Регистрация: 27.07.2012
Сообщений: 4
По умолчанию

Спасибо помог =)
masterjada вне форума Ответить с цитированием
Старый 26.01.2013, 10:20   #9
margulani
Новичок
Джуниор
 
Регистрация: 26.01.2013
Сообщений: 2
По умолчанию Исчезновение элементов при перемещении формы

Я перемещаю форму со стилем no borders с помощью

this.Location=new Point(x,y);

делаю это в цикле для плавного появления из трея.
Работает, но при перемещении элементы формы исчезают и при завершении всех перемещении появляются.

Что делать?
margulani вне форума Ответить с цитированием
Старый 04.02.2013, 10:04   #10
margulani
Новичок
Джуниор
 
Регистрация: 26.01.2013
Сообщений: 2
По умолчанию Решено

Нужно this.Refresh() добавить)
margulani вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение формы за заголовок Airou C++ Builder 4 04.04.2013 03:31
Возникли проблемы с функциями FRATER1234 Общие вопросы C/C++ 10 08.10.2011 20:51
Установка Wordpress возникли проблемы misher WordPress и другие CMS 9 21.02.2011 09:34
Установка форума - возникли проблемы misher WordPress и другие CMS 18 10.02.2011 15:10
JQuery - возникли некоторые проблемы! hoza_syl JavaScript, Ajax 6 30.12.2009 23:11