0

单击按钮时,我想禁用选项卡选择。为此,我使用以下代码:

        foreach (TabPage page in scenarioSelectionTab.TabPages)
        {
            if (scenarioSelectionTab.SelectedTab != page) page.Enabled = false;
        }

问题是,当我使用上面的代码时,这也会禁用当前选项卡。我该如何预防?

4

2 回答 2

1

您只是禁用页面 - 这就是为什么当您无法启用另一个选项卡时。只需Enabled为每个标签页设置状态:

foreach (TabPage page in scenarioSelectionTab.TabPages)
{
    page.Enabled = scenarioSelectionTab.SelectedTab == page;
}
于 2013-08-12T18:59:51.910 回答
1

试试这个变种:

foreach (TabPage page in scenarioSelectionTab.TabPages) {
    ((Control)page).Enabled = scenarioSelectionTab.SelectedTab == page;
}

TabPage 类没有有效的 Enabled 属性。阅读 MSDN。

如果这不起作用,请尝试使用选定事件的另一个变体:

private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e) {
    if (e.TabPage != scenarioSelectionTab.SelectedTab) e.Cancel = true;
}
于 2013-08-12T19:14:54.027 回答