加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

vb.net – 从标题栏.NET中可视地删除/禁用关闭按钮

发布时间:2020-12-17 00:05:06 所属栏目:大数据 来源:网络整理
导读:我被要求删除或禁用我们的VB .NET 2005 MDI应用程序中的关闭按钮.表单上没有允许您使关闭按钮变灰的本地属性,因此用户无法关闭它,我不记得在表单类中看到任何允许我这样做的内容. 是否可能有一个API调用或一些神奇的属性来设置或运行.NET 2005或更高版本来执
我被要求删除或禁用我们的VB .NET 2005 MDI应用程序中的关闭按钮.表单上没有允许您使关闭按钮变灰的本地属性,因此用户无法关闭它,我不记得在表单类中看到任何允许我这样做的内容.

是否可能有一个API调用或一些神奇的属性来设置或运行.NET 2005或更高版本来执行此操作?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

更多信息:

我需要保持最小化/最大化功能

我需要维护原始标题栏,因为表单的绘图方法已经非常复杂.

根据您添加到问题中的最新信息,跳到我的答案结尾.

这是您需要设置为false:Form.ControlBox Property

但是,您将丢失最小化和最大化按钮以及应用程序菜单(左上角).

作为替代方法,重写OnClose并将Cancel设置为true(C#示例):

protected override void OnFormClosing(FormClosingEventArgs e)
{
    if (e.CloseReason != CloseReason.WindowsShutDown && e.CloseReason != CloseReason.ApplicationExitCall)
    {
        e.Cancel = true;
    }

    base.OnFormClosing(e);
}

如果这些解决方案都不可接受,并且您必须仅禁用关闭按钮,则可以使用pinvoke / createparams路径:

How to disable close button from window form using .NET application

这是jdm代码的VB版本:

Private Const CP_NOCLOSE_BUTTON As Integer = &H200
Protected Overloads Overrides ReadOnly Property CreateParams() As    CreateParams
   Get 
      Dim myCp As CreateParams = MyBase.CreateParams 
      myCp.ClassStyle = myCp.ClassStyle Or CP_NOCLOSE_BUTTON 
      Return myCp 
   End Get 
End Property

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读