【问题标题】:C# WinForms: On New Form Load Choose Tab VisibilityC# WinForms:在新表单加载时选择选项卡可见性
【发布时间】:2011-07-01 16:19:18
【问题描述】:

在我的应用程序中加载文件时,我无法设置选项卡的可见性。 当用户启动应用程序时,它会显示欢迎选项卡,我想要做的是当用户选择文件时 - >打开它会在新的编辑器表单中加载文件,但我似乎无法弄清楚如何制作它加载表单并设置编辑器选项卡的可见性。

          if (this.openEditorDialog.ShowDialog(this) == DialogResult.OK && editForm != null)
        {
            editForm.Close();
            editForm = new EditorForm(this);
            editForm.OpenFile(this.openEditorDialog.FileName);
            editForm.Closing += new CancelEventHandler(EditorForm_Closing);
            editForm.Show();
        }

我尝试过 editForm.EditorTab.Show();以及 Activecontrol = editForm.EditorTab 无济于事。非常感谢。

【问题讨论】:

  • 很难猜出那个标签在做什么。当然它应该由 EditorForm 本身在其 OpenFile() 方法中控制?

标签: c# windows forms tabcontrol


【解决方案1】:

TabControl 有一个SelectedTab 属性:check MSDN。我知道我有一个样本,只需要找到它。

...哎呀,是SelectTab:here on MSDN

void SetVisibleTab(TabPage tabPage) {
   myTabControl.SelectTab(tabPage);
}

【讨论】:

    【解决方案2】:

    在您的 form.show 命令之后执行以下操作:

                Application.DoEvents();
            EditorTab.Focus();
    

    【讨论】:

    • 因为它允许 .Show 方法在尝试聚焦之前完成。如果您不采取措施让 .show 完成,则 .focus 将无法可靠地工作。这是 DoEvents 适用的极少数情况之一。使窗口上的消息泵在继续之前处理未完成的消息。
    • 你不需要使用.Focus() - 不需要.DoEvents()
    • 没有 .Focus() 你打算如何改变焦点控制?实际上在这种情况下,它可能是选项卡上第一个设置焦点的控件,但谁知道 jonalodev 的实际意图是什么。
    • "当用户选择文件 -> 打开时,它会在新编辑器中加载文件...使其加载表单并设置编辑器选项卡的可见性。 " ...似乎相当明显,OP 想要在 TabPage 上设置可见性 ...这就是我们提供 SelectTab(...) 方法的原因。
    猜你喜欢
    • 2010-12-09
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多