Как удалить кнопку «Закрыть» из системного меню формы в C#

C# не имеет встроенного способа управления системным меню, которое появляется, когда вы нажимаете левый верхний угол формы, но не сложно использовать функции API для удаления некоторых или всех этих кнопок.

В этом примере используются следующие операторы, чтобы объявить функции API, необходимые для удаления команды X из меню.

Этот код сначала определяет функции API GetSystemMenu, GetMenuItemCount и RemoveMenu.

Обработчик события Load формы использует GetSystemMenu, чтобы получить дескриптор для системного меню формы. Затем он использует GetMenuItemCount, чтобы узнать, сколько элементов содержится в меню. Затем он дважды вызывает RemoveMenu, чтобы удалить элемент меню «Закрыть» и разделитель, который находится перед ним в меню.

Вы можете видеть на картинке, что элемент меню X и разделитель перед его полным удалением. Вы также можете увидеть, что кнопка закрытия X в верхнем правом углу формы отключена. (Если бы он был включен, у него был бы красный фон.)

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

Если вы удалите все элементы меню системы, пользователь не сможет перемещать, изменять размер или закрывать форму, и системное меню формы не будет отображаться. Однако символ системного меню по-прежнему отображается в верхнем левом углу формы, курсор все равно изменяется на курсор изменения размера, когда вы удерживаете его над границами формы, и кнопки с минимальным и максимальным значениями все еще работают. В целом, это довольно запутанно для пользователя. Если вы хотите полностью удалить это меню, установите для него свойство ControlBox вместо False.

Источник: http://csharphelper.com/blog/2016/09/remove-the-close-button-from-a-forms-system-menu-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *