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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2012, 13:16   #1
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию MouseDoubleClick

Доброго времени суток. Вообщем писал в основном на C++ Builder, вчера решил пощупать и C#, но в свою очередь возникли некоторые недопонимания, например с событием двойного щелчка мышки.
Собственно ниже приведенный пример работает отлично, но срабатывает он только на правый двойной щелчок и колесико в случае если событие MouseDown уже используется, например как у меня.
Как избежать конфликта, если у меня это форма служит и для перетаскивания главной формы и развертывание.

Код:
private void TheUpperEdgeSystemBar_MouseDoubleClick(object sender, MouseEventArgs e)
{
 if (WindowState == FormWindowState.Normal)
  WindowState = FormWindowState.Maximized; 
 else WindowState = FormWindowState.Normal;
}
Код:
  // Инициализируем новый экзэмпляр класса с именем библиотеки содержащей импортируемый метод
  [DllImportAttribute("user32.dll")]
  public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
  [DllImportAttribute("user32.dll")]
  public static extern bool ReleaseCapture();

  private void TheUpperEdgeSystemBar_MouseDown(object sender, MouseEventArgs e)
  {
   if (e.Button == MouseButtons.Left)
   {
    ReleaseCapture();
    SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
   }
  }
coNsept вне форума Ответить с цитированием
Старый 05.02.2012, 13:19   #2
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Разобрался сам, извините за бесполезный плод

Код:
  // Инициализируем новый экзэмпляр класса с именем библиотеки содержащей импортируемый метод
  [DllImportAttribute("user32.dll")]
  public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
  [DllImportAttribute("user32.dll")]
  public static extern bool ReleaseCapture();

  private void TheUpperEdgeSystemBar_MouseDown(object sender, MouseEventArgs e)
  {
   if (e.Button == MouseButtons.Left && e.Clicks == 1)
   {
    ReleaseCapture();
    SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
   }
  }
coNsept вне форума Ответить с цитированием
Ответ


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