我有一个标签控件,上面有几个标签,我想在检查另一个标签页上的单选按钮时禁用其中一个标签。我可以使用tab.Enabled = False禁用它上面的控件;但我想知道如何能够禁用整个页面甚至单击选项卡。我的方式我可以选择标签,只是它上面的控件是禁用。
答案 0 :(得分:0)
没有本地方法只禁用一个选项卡,其余选项保持有效。您需要制作自己的TabControl并使用Selecting事件来检测某人何时即将进入您的标签并将其禁用。
这是一个非常基本的示例,阻止您输入tabindex 1。
// Make your own control deriving from TabControl
class CustomTabControl : TabControl
{
// Subscribe to the Selecting event
public CustomTabControl()
{
Selecting += tabSelecting;
}
private void tabSelecting(object sender, TabControlCancelEventArgs e)
{
// You would put your own logic here to detect which tabs to disable
// For this example I'm disabling access to tab in index 1
if (e.TabPageIndex == 1)
{
e.Cancel = true;
}
}
}
如果你希望标签变灰,你甚至需要覆盖DrawItem并自己绘制标签。如果我有代码,我会稍微更新我的答案。
编辑:似乎自定义绘图的示例很长,但这是我用来创建自己的标签的教程。
http://www.codeproject.com/Articles/91387/Painting-Your-Own-Tabs-Second-Edition