按钮Click vs ShortCut Key(ALT)事件触发顺序

时间:2015-08-18 14:24:39

标签: vb.net winforms visual-studio-2010 events

我在快捷键设置(ALT + S)的表单上有一个保存按钮。 在我datagrid活动的cellvalidated中,我确定是否可以为用户启用或停用此按钮。

类似于事件触发命令的旧VB6问题.... 如果该按钮当前已启用,但用户将无效数据放入datagrid单元格中。如果他们单击按钮,单元格验证事件将触发,禁用按钮 - 没有问题。相反,当他们输入错误数据并执行ALT + S时,单元格验证事件会触发,但在这种情况下,Button_Click事件仍然会触发。

有什么方法可以阻止这种情况吗?基本上如果使用ALT +,我不希望激活 Click 事件。

1 个答案:

答案 0 :(得分:1)

如果其他一切都失败了 - 有这种方法(伪代码)

Class Form

    private _validated as Boolean

    sub Cell_validate

        ' validate here and set
        _validated = true/false
    end sub

    sub Button_Click

        If not _validated then Return

        ' have your save logic here
    end sub          

End class

这样,当按钮被禁用时,您将保护代码不会执行Button_Click的实际逻辑。