关闭调用C#中的tabPage_Enter方法

时间:2008-12-01 23:31:51

标签: c# winforms tabcontrol

当我使用以下代码切换标签时

tabControl1.SelectTab("MyNextTab");

它调用tabPage_Enter作为它正在切换的选项卡以及它切换到的选项卡。我想要它被切换到的标签被调用,但不是它正在切换的标签。我该怎么做呢?我确实知道它何时发生,所以如果有一个调用我可以关闭调用该选项卡的enter方法我可以实现它。

3 个答案:

答案 0 :(得分:2)

是的,如果我使用按钮更改所选标签,我会重新调用。 TabControl在更改SelectedIndex之前强制将焦点置于其自身上。这似乎是为了避免Validating事件的问题。焦点更改产生第一个Enter事件,对于活动选项卡,选项卡更改然后生成第二个Enter事件。

知道这一点,你可以设置一个帮助器布尔成员,指示应该忽略第一个Enter事件。请注意检查当前选项卡是否已经是您要选择的选项卡。在完美的世界中,这种行为无关紧要。真正的重点首先移动到活动标签。

答案 1 :(得分:0)

您可以使用它检查活动标签的索引和变通方法吗?

答案 2 :(得分:0)

在检查中包含事件中的代码,以便它只在您需要时进行处理。

如果您可以编写代码将其关闭,那么您可以编写代码来设置阻止事件中的代码运行的状态。