【问题标题】:Simple Windows Form Top Right Buttons简单的 Windows 窗体右上角按钮
【发布时间】:2012-01-18 19:44:41
【问题描述】:

我的问题可能听起来很简单,但我无法在任何地方得到我正在寻找的答案。 我想为 Windows 窗体程序创建一个 登录 页面,但我不希望 窗体 具有右上角的经典按钮(最小化、最大化、关闭)。 我找不到隐藏按钮的属性。

有人知道这个的好方法吗? 提前致谢

【问题讨论】:

    标签: c# winforms


    【解决方案1】:

    对于最小化和最大化按钮,只需设置这些属性(例如在构造函数中):

    public Form1()
    {      
        MaximizeBox = false;
        MinimizeBox = false;
        ControlBox = false;
    }
    

    【讨论】:

    • 谢谢我为这些按钮找到的,但我的实际问题是关闭按钮。我不希望用户退出登录页面
    • @PhaDaPhunk "ControlBox = false;"
    • @PhaDaPhunk:我改变了我的样本。
    • 您仍然可以使用 ALT+F4 关闭此类表单。
    • @DavidHeffernan 我知道,但我的程序不需要这种关闭保护。
    【解决方案2】:

    Form 有两个属性称为MinimizeBoxMaximizeBox,将它们都设置为false

    关闭按钮

    在构造和创建 Form 对象期间,.NET 将使用基类 CreateParams 属性中可用的默认创建参数。

    事实上,CreateParams property 在 Forms.Control 类中可用。在表单类(派生自 System.Windows.Forms.Form)中,覆盖此属性并修改创建标志。要禁用关闭按钮,请使用 0x200 修改 CreateParams 的 ClassStyle 成员。

    private const int CP_NOCLOSE_BUTTON = 0x200;
     protected override CreateParams CreateParams
     {
         get
         {
            CreateParams myCp = base.CreateParams;
            myCp.ClassStyle = myCp.ClassStyle | CP_NOCLOSE_BUTTON ;
            return myCp;
         }
     } 
    

    请通过link for more info

    【讨论】:

    • 谢谢,但仍然需要隐藏 X(关闭按钮)。
    • 一个简单的ControlBox = false; 就足够了。
    【解决方案3】:

    跳出框框思考一下,您是否考虑过显示 Windows 密码对话框而不是自己编写?这样做的好处是让您的对话看起来和感觉更原生。

    您可以使用CredUIPromptForCredentials API 来显示根据您的需要定制的对话框。周围有很多 C# 包装器,但如果您喜欢自己做的话,它是一个非常直接的 p/invoke。我快速的网络搜索发现了这个Stack Overflow 问题,必要的 p/invoke 工作已经完成。

    【讨论】:

      猜你喜欢
      • 2010-11-10
      • 1970-01-01
      • 2010-11-10
      • 2011-06-11
      • 2013-06-05
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多