【问题标题】:Turn off calling tabPage_Enter method in C#在 C# 中关闭调用 tabPage_Enter 方法
【发布时间】:2008-12-01 23:31:50
【问题描述】:

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

tabControl1.SelectTab("MyNextTab");

它为它正在切换的选项卡和它正在切换到的选项卡调用 tabPage_Enter。我希望它被调用它正在切换到的选项卡,而不是它正在切换的选项卡。我将如何关闭它。我确实知道它什么时候发生,所以如果有一个调用,我可以关闭调用该选项卡的 enter 方法,我可以实现它。

【问题讨论】:

    标签: c# winforms tabcontrol


    【解决方案1】:

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

    知道了这一点,您可以设置一个辅助布尔成员,指示应忽略第一个 Enter 事件。小心检查当前选项卡是否已经不是您要选择的选项卡。在一个完美的世界中,这种行为应该无关紧要。焦点确实确实首先移到了活动标签。

    【讨论】:

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

    你能检查活动标签的索引和使用它的解决方法吗?

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-12-29
        • 2014-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多