Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我如何才能禁用选项卡的选择?_C#_User Interface - Fatal编程技术网

C# 我如何才能禁用选项卡的选择?

C# 我如何才能禁用选项卡的选择?,c#,user-interface,C#,User Interface,我有一个选项卡控件,上面有两个选项卡,我想在选中另一个选项卡页面上的单选按钮时禁用其中一个选项卡。我可以使用tab.Enabled=False禁用它上的控件;但我想知道我如何才能禁用整个页面,甚至不点击标签。按照我的方式,我仍然可以选择选项卡,只是它上的控件被禁用。没有本地方法只禁用一个选项卡,而让其余的选项卡工作。您需要创建自己的TabControl,并使用Selecting事件来检测何时有人将要进入您的选项卡并禁用它 下面是一个非常基本的示例,它阻止您输入tabindex 1 // Make

我有一个选项卡控件,上面有两个选项卡,我想在选中另一个选项卡页面上的单选按钮时禁用其中一个选项卡。我可以使用tab.Enabled=False禁用它上的控件;但我想知道我如何才能禁用整个页面,甚至不点击标签。按照我的方式,我仍然可以选择选项卡,只是它上的控件被禁用。

没有本地方法只禁用一个选项卡,而让其余的选项卡工作。您需要创建自己的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,并自己绘制选项卡。如果我有这方面的代码,我会在一点时间内更新我的答案

编辑:看起来自定义绘图的示例很长,但下面是我用来创建自己选项卡的教程


Equalsk,我不想选择选项卡本身。我希望选项卡标题也变灰,我无法选择它。有什么方法可以做到这一点吗?你问题的最后一行确实让人困惑,它说你希望能够在禁用控件的情况下单击选项卡。你只是希望标签是灰色的,所以不能被选中,对吗?是的,这正是我想让我更新我的答案。非常感谢你!