【问题标题】:How can I hide the close button of a form?如何隐藏表单的关闭按钮?
【发布时间】:2013-09-13 06:45:33
【问题描述】:

我使用下面的代码来显示表单图标但禁用关闭按钮图标。这可行,但我想完全隐藏按钮。我怎样才能做到这一点?

public partial class Form1 : Form
{
    private const int CS_NOCLOSE = 0x200;
    protected override CreateParams CreateParams
    {
        get
        {
            CreateParams mdiCp = base.CreateParams;
            mdiCp.ClassStyle = mdiCp.ClassStyle | CS_NOCLOSE;

            return mdiCp;
        }
    }

    public Form1()
    {
        InitializeComponent();
    }

}

【问题讨论】:

  • 只有在所有其他按钮(最小、最大、帮助)也被隐藏时,关闭按钮才会隐藏。否则,显示为禁用但可见的按钮。此外,winforms 窗口具有内置的属性,可以控制标题栏按钮的可见性。无需诉诸于重写 CreateParams。
  • 你想达到什么目的?只是隐藏关闭按钮并保留其他按钮?还是隐藏整个控制箱?

标签: c# winforms


【解决方案1】:

你不能隐藏它,但是你可以通过上面的代码来禁用它。

最好用自己的控件框制作自己的表单,不带关闭按钮,然后隐藏父表单的控件框。

【讨论】:

    【解决方案2】:

    这将隐藏一切:

    this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
    

    现在您可以制作一个大容器面板并放置自定义按钮,这些按钮可以执行诸如恢复按钮和最小化按钮之类的操作。 好吗??

    【讨论】:

      【解决方案3】:

      试试这个,禁用关闭 (X) 按钮,它在 vb.net 中,你可以将其转换为 c#

      Private Const SC_CLOSE As Integer = &HF060
      Private Const MF_GRAYED As Integer = &H1
      
      <DllImport("user32.dll")> _
      Private Shared Function GetSystemMenu(hWnd As IntPtr, bRevert As Boolean) As IntPtr
      End Function
      
      <DllImport("user32.dll")> _
      Private Shared Function EnableMenuItem(hMenu As IntPtr, wIDEnableItem As Integer, wEnable As Integer) As Integer
      End Function
      
      Public Sub EnableDisable(form As Form, isEnable As Boolean)
          EnableMenuItem(GetSystemMenu(form.Handle, isEnable), SC_CLOSE, MF_GRAYED)
      End Sub
      

      调用EnableDisable(Me, False) 禁用,调用EnableDisable(Me, True) 启用

      对我有用

      【讨论】:

        【解决方案4】:

        只有在所有其他按钮(最小、最大、帮助)也被隐藏时,关闭按钮才会隐藏。

        但隐藏所有这些的一种方法是将表单边框设置为无,

        this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-01-02
          • 2011-11-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-11-13
          • 2013-01-21
          • 2018-03-27
          相关资源
          最近更新 更多