重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
把按钮的Enable属性改为False。
创新互联建站是一家集网站建设,平定企业网站建设,平定品牌网站建设,网站定制,平定网站建设报价,网络营销,网络优化,平定网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
用代码:按钮名.Enable=False。
用API:EnableWindow。
1、VB是一种可视化的面向对象的程序设计语言,Enabled是VB中控件的一种属性。
2、Enabled属性有两种值True和False,分别代表真和假。当一个控件的Enabled属性值为真时代表该控件可以用,当控件的Enabled属性为False时代表该控件不可用(图形会变度为灰色且不可以选中)。
扩展资料
vb点虐 特性:
1、vb点虐 完全集成到 Visual Studio 集成开发环境中,在这种集成开发环境与 VB 在若干方面有差异。主要体现在窗体的布局以及菜单等方面都有所不同。
2、vb点虐 项目与 VB 不同。它使用基于文件夹的模型,所有项目均放置在项目文件夹层次结构中。
3、vb点虐 中使用ado点虐 来访问数据库,ado点虐 是点虐 Framework的一部分。在 vb点虐 中实现数据访问的方法主要有两种。
系统bug,网络问题。
1、系统bug是vb点虐 外接软件系统出现了问题导致程序不显示菜单,等待官方修复即可。
2、网络问题是自身设备连接的网络出现较大波动,导致vb点虐 外接程序不显示菜单,更换网络重新打开即可。
很简单,通过WindowsAPI,删除窗体菜单项就行了
首先在窗体类中声明API:
Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As IntPtr, ByVal bRevert As Boolean) As IntPtr
Declare Function RemoveMenu Lib "user32" (ByVal lngHmenu As IntPtr, ByVal nPosition As Integer, ByVal wFlags As Integer) As Integer
其次声明API参数常量:
Const MF_BYPOSITION As Integer = H400
然后在窗体类中写入过程:
Private Sub UserForm_Initialize_stopmove() '禁止窗体移动
Dim lngHwnd As IntPtr
Dim lngHmenu As IntPtr
lngHwnd = Me.Handle
If lngHwnd 0 Then
lngHmenu = GetSystemMenu(lngHwnd, False)
RemoveMenu(lngHmenu, 0, MF_BYPOSITION) '这里的0代表菜单中从上往下数第一个菜单项
End If
End Sub
Private Sub UserForm_Initialize_onmove() '恢复窗体移动
Dim lngHwnd As IntPtr
Dim lngHmenu As IntPtr
lngHwnd = Me.Handle
If lngHwnd 0 Then
lngHmenu = GetSystemMenu(lngHwnd, True)
RemoveMenu(lngHmenu, 0, MF_BYPOSITION) '这里的0与禁止代码中的数值同步,原因时虽然表面上删除了菜单项,实则为隐藏了菜单项,各个菜单的索引值并没有变,所以0依然代表初始菜单的第一个菜单项,即被删除的那个菜单项
End If
End Sub
然后如果你的窗口菜单是动态变化的,建议声明常数:
Const MF_BYPOSITION As Integer = H0
然后使用相关的Windows功能的常数进行删除菜单。常数需要自行查看winuser.h头文件
如果找不到该头文件,可以看这里:网页链接
其余信息详见MSDN:网页链接
最后说一下,不建议前面网友说的重写WndProc的方法,因为这样拦截标题栏点击消息会导致窗体本身的菜单也无法显示出来,有损窗体功能,并且像双击左上角图标关闭窗体这样的功能也会跟着拦截消息的操作一起被吞掉。