2008-12-01 55 views
1

调用tabPage_Enter方法当我切换标签用下面的代码关闭在C#

tabControl1.SelectTab("MyNextTab"); 

它要求它从切换的标签和它被切换到的标签的tabPage_Enter。我希望它被称为它切换到的标签,但不是它从中切换的标签。我将如何关闭此功能。我知道它什么时候发生,所以如果有一个我可以做的调用,将关闭调用该选项卡的输入方法,我可以实现。

回答

2

是的,我repro如果我使用一个按钮来更改选定的选项卡。 TabControl在更改SelectedIndex之前将焦点强制到自身上。这似乎已经完成以避免验证事件的问题。焦点更改会生成第一个Enter事件,对于活动选项卡,选项卡更改将生成第二个Enter事件。

知道了这一点,您可以设置一个helper布尔成员,指示应该忽略第一个Enter事件。请小心检查当前选项卡是不是您想要选择的选项卡。在一个完美的世界里,这种行为应该不重要。重点确实确实先移到活动标签。

+0

我以这种方式解决了这个问题。我实际上调用一个函数来切换选项卡,并在那里设置一个字符串,其中包含切换前的当前选项卡的名称。 tabPage_Enter方法检查它是否已经启动,所以我不运行代码。谢谢你nobuz你指出我正确的方式。 – Matt 2008-12-02 22:42:28

0

您可以使用它检查活动选项卡的索引和解决方法吗?

0

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

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