C#按钮选项卡隐藏控件Winform

C#按钮选项卡隐藏控件Winform,c#,winforms,C#,Winforms,嘿,所以我试图创建一个表单,其中有两个按钮(作为选项卡),当按下一个按钮时,会显示特定控件,当按下另一个按钮时,会显示另一组 我已经很好地实现了这一点,但是当我即将创建第二组控件时遇到了一个问题,我将如何(在设计器中)在当前控件的顶部绘制它们(在运行时很好)?所以我的问题是,我怎样才能让这一切顺利进行。当前(可能)重要代码: private void CheatButton_Click(object sender, EventArgs e) { CheatControls

嘿,所以我试图创建一个表单,其中有两个按钮(作为选项卡),当按下一个按钮时,会显示特定控件,当按下另一个按钮时,会显示另一组

我已经很好地实现了这一点,但是当我即将创建第二组控件时遇到了一个问题,我将如何(在设计器中)在当前控件的顶部绘制它们(在运行时很好)?所以我的问题是,我怎样才能让这一切顺利进行。当前(可能)重要代码:

private void CheatButton_Click(object sender, EventArgs e)
    {
        CheatControls(true);
        ColorControls(false);

        CheatButton.Normalcolor = Color.FromArgb(51, 51, 51);
        ColorButton.Normalcolor = Color.FromArgb(61, 61, 61);
    }

    private void ColorButton_Click(object sender, EventArgs e)
    {
        CheatControls(false);
        ColorControls(true);

        CheatButton.Normalcolor = Color.FromArgb(61, 61, 61);
        ColorButton.Normalcolor = Color.FromArgb(51, 51, 51);
    }

private void CheatControls(bool b)
    {
        TriggerSwitch.Visible = b;
        TriggerLabel.Visible = b;

        BhopSwitch.Visible = b;
        BhopLabel.Visible = b;

        GlowSwitch.Visible = b;
        GlowLabel.Visible = b;

        RecoilSwitch.Visible = b;
        RecoilLabel.Visible = b;
    }

    private void ColorControls(bool c)
    {

    }

为了提高可视性,您可以获取按钮的位置,并在隐藏和显示其他按钮时显示它们


只需设置顶部和左侧位置,确保按钮大小相同。

将所有作弊控件放在自定义
UserControl
中,并将所有颜色控件放在不同的自定义
UserControl
中。您可以在设计器中轻松编辑不同的控件集,在代码中,您可以通过设置相应的
UserControl
的可见性而不是单独设置一组控件的可见性来更轻松地隐藏/显示它们。下面是一个创建
UserControl
的(公认的老)示例:

在Visual Studio中创建
用户控件时,可以使用设计器将控件添加到该控件中。在带有选项卡按钮的表单中,可以添加所创建的两个
UserControl
s的实例。由于
UserControl
派生自
Control
,因此它有一个
可见的
属性。因此,在您的
CheatControls(bool b)
方法中,您的实现将简化为类似
\u myCheatControls.Visible=b。我还没有看完整的视频,但这段视频可能也会有所帮助:

你可以使用

只需添加一个超级按钮(用作选项卡按钮),单击它时,将显示一个包含控件的面板

例如


您还可以使用
BringToFront()
而不是使每个面板不可见/可见,但您需要正确地锚定或停靠面板

您可以使用z-index(决定顺序)如何不欺骗选项卡行为,而是使用真正的选项卡控件?您可以在Toolbox=>ContainerHey@LocEngineer中找到它,我会这样做,但我如何才能将它实现到我目前的设计中,因为我非常喜欢它。将所有作弊控件放在自定义
UserControl
中,并将所有颜色控件放在不同的自定义
UserControl
中。您可以在设计器中轻松编辑不同的控件集,在代码中,您可以通过设置相应的
UserControl
的可见性而不是单独设置一组控件的可见性来更轻松地隐藏/显示它们。这里有一个创建
UserControl
的(公认是老的)例子:感谢堆,@wablab我来试试。这是一个单独的设计师,还是有隐藏或显示选项?最后一个小问题<代码>私有控件(bool b){PanelsCheats.Visible=b;}
似乎没有隐藏它!有什么帮助吗?这适用于你的情况吗?
    private void ShowControlSet(int ControlSet)
    {
        panel1.visible = false;
        panel2.visible = false;
        if (ControlSet == 1) panel1.visible = true;
        if (ControlSet == 2) panel2.visible = true;
    }

// To show a panel use
ShowControlSet(1);