0

我是 C# 新手,我想为 C# 中的图像处理应用程序设计一个 GUI。我有一个非常基本的基本布局,设计如下所示在此处输入图像描述

在这里,图像平面是固定的,它将显示实时流视频。我设计了所有的按钮框架和侧面板。但我不知道如何为我单击的每个按钮动态更改侧面板。例如,如果我单击 button1_1,我希望在侧面板中添加一些内容,而对于 button1_2,我希望在其中添加一些其他内容。我该怎么做。

编辑:

感谢您的回答。我看到选项卡控件是一个选项。但我想要一个新面板每次点击一个按钮。这可以进一步打开表格。是否可以?

4

3 回答 3

4

好吧,让我们来看看。使用“TabControl”或“Panel”数组很容易。

1.用 TabControl 来做。您可以在多个子选项卡中的 TabControl 中设计 GUI(如果您不知道如何请询问。)。然后你在按钮单击事件中更改它,以制作你想要显示的子标签(这意味着让它对其他子标签可见而不可见。)

2.用面板阵列做。您可以使用 panel[] 面板。在按钮单击事件中,您隐藏其他面板并显示您想要的面板。

希望回答对你有帮助!

    private void button1_Click(object sender, EventArgs e)
    {
        tabControl1.SelectedIndex = 0;
        tabControl1.TabPages[0].Text = "First";
    }

    private void button2_Click(object sender, EventArgs e)
    {
        tabControl1.SelectedIndex = 1;
    }

    private void button3_Click(object sender, EventArgs e)
    {
        tabControl1.SelectedIndex = 2;
    }
于 2013-01-30T01:44:36.533 回答
2

您可能想在表单中添加拆分容器。

为每个按钮创建 UserControl。

按钮单击事件的代码

//Button1Click Event
    private void button1_Click(object sender, EventArgs e)
    {
        UserControl1 m_UserControl = new UserControl1();
        splitContainer1.Panel2.Controls.Clear();
        splitContainer1.Panel2.Controls.Add(m_UserControl);
    }
    //Button2Click Event
    private void button2_Click(object sender, EventArgs e)
    {
        UserControl2 m_Usercontrol2 = new UserControl2();
        splitContainer1.Panel2.Controls.Clear();
        splitContainer1.Panel2.Controls.Add(m_Usercontrol2);
    }

如果您想在运行时更改面板中显示的用户控件,则可以执行此操作。如果我误解了你的问题,请纠正我。

于 2013-01-30T02:17:35.360 回答
1

在 WinForms 中,您可以使用选项卡控件并在按下按钮时更改选定的选项卡索引。更具体地说,当它的点击事件被触发时。是一个关于使用 TabControl 的好教程,是一个关于连接点击事件的教程。

编辑:

是一个更好的教程。

由于您无法在不使用 WPF 的情况下隐藏选项卡控件的选项卡,因此如果您不喜欢它们的外观,您可能需要使用其他东西。如果您只有几个按钮和视图,一个很好的解决方法是使用面板。单击按钮一时,显示面板一并隐藏面板二等。下面是代码:

private void button1_Click(object sender, EventArgs e)
    {
        pane2.visible = false;
        pane1.visible = true;
    }

private void button2_Click(object sender, EventArgs e)
    {
        pane1.visible = false;
        pane2.visible = true;
    }

希望这对你有帮助!

于 2013-01-30T02:21:02.157 回答