更改控件中的操作+;F4 Vb.net
我的应用程序是父、子应用程序。子窗体显示,然后按更改控件中的操作+;F4 Vb.net,vb.net,mdichild,Vb.net,Mdichild,我的应用程序是父、子应用程序。子窗体显示,然后按cntrl+F4关闭子窗体。如何阻止该操作,同时如果我按下cntrl+F4子窗体的have submit按钮,则会调用该事件 我该怎么做 我在下面使用的编码是块控件+F4 Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean If keyData = Keys.Control Or Keys
cntrl+F4
关闭子窗体。如何阻止该操作,同时如果我按下cntrl+F
4子窗体的have submit按钮,则会调用该事件
我该怎么做
我在下面使用的编码是块控件+F4
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
If keyData = Keys.Control Or Keys.F4 Then Return True
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
您必须捕获表单关闭事件,然后测试它是否通过按键完成 我猜你是指ALT-F4
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
If My.Computer.Keyboard.AltKeyDown Then e.Cancel = True
End Sub
甚至更短
e.Cancel=My.Computer.Keyboard.AltKeyDown
此事件已存在,FormClosing事件激发。您可以通过在事件的事件处理程序中设置e.cancel=True来取消关闭。在进行此操作之前,请务必检查e.CloseReason
不要破坏标准的Windows快捷键,这没有意义。用户还可以通过单击子窗口的关闭按钮来关闭窗口。Ctrl+F4只是一个有用的快捷键,可以不用鼠标来做同样的事情。不,他的意思是Ctrl+F4,MDI子窗口的标准快捷键。使用当前的键盘状态来决定事件让我感到厌烦。作为反对这一点的一个论点,我怀疑如果用户在遇到严重性能问题的计算机上按Ctrl+F4,则消息可能在表单关闭事件之前排队,从而导致
My.Computer.Keyboard.CtrlKeyDown
与用户尝试关闭表单时的状态不匹配。