-1

我的应用程序是父子应用程序。子窗体显示然后按cntrl + F4子窗体关闭。如果我按 4,如何阻止该操作,同时cntrl + F子表单具有调用该事件的提交按钮。

我怎样才能做到这一点?

我使用下面的编码是块control + 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
4

2 回答 2

1

此事件已存在,FormClosing 事件触发。您可以通过在事件处理程序中设置 e.Cancel = True 来取消关闭。请务必在执行此操作之前检查 e.CloseReason。

避免破坏标准的 Windows 快捷键,没有意义。用户也可以通过单击子窗口的关闭按钮来关闭窗口。Ctrl+F4 只是一个有用的快捷方式,可以在不使用鼠标的情况下执行相同的操作。

于 2013-08-19T12:56:05.457 回答
0

您必须捕获表单关闭事件,然后测试它是否通过按键完成。

我假设你的意思是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
于 2013-08-19T11:31:33.317 回答