0

我正在按照如何防止用户更改 TabControl 中选定的标签页?

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

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

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

4

2 回答 2

1

这是验证应该如何表现的一种方式,它不是与标签页的幸运匹配。

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

于 2010-04-28T11:56:56.180 回答
1

改为使用TabControl.Selecting Event

像这样使用它:

tabControl1.Selecting += tabControl1_Selecting;

private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
{
    e.Cancel = !(can switch tab);
}
于 2010-04-28T11:58:59.000 回答