【问题标题】:TabPage Validating event firing when clicked on the currently selected tab单击当前选定的选项卡时触发 TabPage 验证事件
【发布时间】:2011-02-13 07:29:25
【问题描述】:

我正在做How do I prevent the user from changing the selected tab page in a TabControl?中所说的事情

一切正常。但是如果我当前选择了 tabpage1 并且用户单击 tabpage1 本身,则会发生 tabpage1 的验证事件。之后当用户点击 tabpage2 时,tabpage1 的验证事件不会触发。

如果我在验证 tabpage1 的事件时执行e.Cancel 会发生什么,在上述情况下,当用户错误地点击 tabpage1 并选择了 tabpage1 时,它会提示用户“你想留在当前选项卡上吗?保存数据还是从当前选项卡移动?”。如果用户点击 Stay 但没有做任何更改。然后当他正确点击tabpage2时,tabpage1的Validating事件没有触发。

我已上传示例应用程序here。您可以运行并查看行为以正确理解问题

【问题讨论】:

    标签: c# winforms tabcontrol tabpage


    【解决方案1】:

    请改用@987654321@

    像这样使用它:

    tabControl1.Selecting += tabControl1_Selecting;
    
    private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
    {
        e.Cancel = !(can switch tab);
    }
    

    【讨论】:

    • 感谢您的链接。我将使用取消选择事件。
    【解决方案2】:

    这是验证应该的行为方式,它只是与标签页的幸运匹配。

    您可以使用 Selecting/Selected 事件并自己编写更多逻辑。或者放弃标签页或单独验证它们的想法。

    【讨论】:

    • 无需留下任何想法或标签页。选择事件可以做到。顺便说一句,对我来说取消选择事件会很好用。感谢@Jens Granlund 提供的链接
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 2014-04-10
    相关资源
    最近更新 更多