我是C#的新手,我想在c#中为图像处理应用程序设计GUI。我有一个非常基本的基本布局,如下所示
这里,图像平面是固定的,它将显示直播视频。我设计了所有按钮框架和侧面板。但我不知道如何动态更改我单击的每个按钮的侧面板。例如,如果我单击button1_1,我想在侧面板中找到一些东西,而对于button1_2,则需要其他一些东西。我该怎么做呢。
编辑:
感谢您的回答。我看到标签控件是一个选项。但我想要一个新的面板evertime点击一个按钮。这可以进一步开放形式。有可能吗?
答案 0 :(得分: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;
}
答案 1 :(得分: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);
}
如果要在运行时更改面板中的usercontrol显示,可以执行此操作。 如果我误解了你的问题,请纠正我。
答案 2 :(得分:1)
在WinForms中,您可以使用选项卡控件,只需在按下按钮时更改选定的选项卡索引。更具体地说,当它的click事件被触发时。 Here是使用TabControl的好教程,here是关于点击事件的教程。
修改强>
This是一个更好的教程。
由于您无法在不使用WPF的情况下隐藏tabcontrol的选项卡,因此如果您不喜欢它们的外观,则可能需要使用其他内容。如果你只有几个按钮和视图,那么一个好的解决方法就是使用面板。单击按钮1时,显示面板1并隐藏面板2,等等。这将是代码:
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;
}
希望这能帮到你!