Диалоговое окно с раскрывающимся меню в C#

Диалоги в C#

В C#.NET нет четкого определения диалогового окна. Это связано с тем, что любая форма Windows может быть диалоговым окном. Нет ограничений на число различных типов диалоговых окон .Net, которые можно запрограммировать на C#.

В данной статье описывается создание диалогового окна с дополнительными возможностями, поведение которого будет аналогично раскрывающемуся меню. Для него существует множество вариантов использования. Например, выбор пользовательского цвета, пользовательское меню, элемент выбора с дополнительными возможностями и т.д.

Поведение выпадающего списка

Сначала необходимо задать поведение элемента управления с выпадающим списком C#.

  • Без строки заголовка, но с границей.
  • Закрывается при щелчке мыши за пределами элемента.
  • Не отображается в панели задач.
  • Отображается поверх всех остальных элементов управления.

Сведения об удалении строки заголовка из формы с сохранением границы см. в статье Форма без строки заголовка. Необходима всего пара строк кода на C# .

Чтобы отслеживать щелчки мыши, используйте событие OnMouseDown. Для этого диалоговому окну необходимо задать следующее свойство:

frmDialog.Capture = true;

Это свойство задаст для окна C# отслеживание курсора мыши, даже если он находится за пределами программы C#.

Наконец, чтобы программа не отображалась в панели задач, задайте свойство ShowInTaskbar, а чтобы диалоговое окно оставалось поверх всех остальных окон, задайте TopMost равное ИСТИНА.

Пример программы можно загрузить по ссылке в нижней части страницы. Загрузите ее, чтобы увидеть реально работающее диалоговое окно с выпадающим списком в C#...