Как оставив кнопку minimize удалить кнопку maximize в Windows Form? - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Всем здравствуйте. Устанавливаю: FormBorderStyle = Fixed Single MaximizeBox = False MinimizeBox = True В этом случае MaximizeBox делается недоступным, но совсем не удаляется. Можно ли сделать так, чтобы FormBorderStyle остался Fixed Single, а слева от "крестика" находился только один значок MinimizeBox. Если установить и MaximizeBox = False и MinimizeBox = False, то "крестик" остаётся в одиночестве, а хотелось бы иметь возможность (стандартную) сворачивать окно на панель задач и разворачивать его в исходные размеры.

Решение задачи: «Как оставив кнопку minimize удалить кнопку maximize в Windows Form?»

textual
Листинг программы
 Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Integer, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
    Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Integer, ByVal bRevert As Integer) As Integer
    Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Integer, ByVal bRevert As Boolean) As Integer
 
 
    Private Const MF_BYPOSITION As Short = &H400
 
    Private Sub RemoveMenus(ByVal frm As Form1, ByVal remove_restore As Boolean, ByVal remove_move As Boolean, ByVal remove_size As Boolean, ByVal remove_minimize As Boolean, ByVal remove_maximize As Boolean, ByVal remove_seperator As Boolean, ByVal remove_close As Boolean)
 
 
        Dim hMenu As Integer
 
 
        hMenu = GetSystemMenu(Me.Handle.ToInt32, False)
 
        If remove_close Then DeleteMenu(hMenu, 6, MF_BYPOSITION)
        If remove_seperator Then DeleteMenu(hMenu, 5, MF_BYPOSITION)
        If remove_maximize Then DeleteMenu(hMenu, 4, MF_BYPOSITION)
        If remove_minimize Then DeleteMenu(hMenu, 3, MF_BYPOSITION)
        If remove_size Then DeleteMenu(hMenu, 2, MF_BYPOSITION)
        If remove_move Then DeleteMenu(hMenu, 1, MF_BYPOSITION)
        If remove_restore Then DeleteMenu(hMenu, 0, MF_BYPOSITION)
 
    End Sub
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        RemoveMenus(Me, False, False, False, False, False, False, False)
    End Sub

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы