TabPage在当前选定的选项卡上单击时验证事件触发

时间:2010-04-28 11:27:50

标签: c# winforms tabcontrol tabpage

我正在做How do I prevent the user from changing the selected tab page in a TabControl?

中所述的事情

事情进展顺利。但是如果我当前选择了tabpage1并且用户点击tabpage1本身,则会发生tabpage1的验证事件。以后当用户点击tabpage2时,tabpage1的验证事件不会触发。

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

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

2 个答案:

答案 0 :(得分:1)

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

您可以使用选择/选定事件并自己编写更多逻辑。或者放弃任何一个标签页或者单独验证它们的想法。

答案 1 :(得分:1)

改为使用TabControl.Selecting Event

像这样使用:

tabControl1.Selecting += tabControl1_Selecting;

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