如何将UserControl加载到面板中? [英] How to load UserControl into panel?
本文介绍了如何将UserControl加载到面板中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在按button1的面板1中加载usercontrol1,并在按button2的panel1中加载usercontrol2.
我该怎么做?
I want to load usercontrol1 in panel1 on pressing button1 and load usercontrol2 in panel1 on pressing button2.
How can I do that?
推荐答案
在Winforms中,不会做类似的事情:
In Winforms, won''t something like do:
// Button1 click event
myPanel1.Controls.Add(userControl1)
// Button 2 click event
myPanel2.Controls.Add(userControl2)
Sandeep的答案有效.但是用户控件应该是一个实例,并且还应该删除面板中的先前控件.
例如
Sandeep''s answer works. But the user control should be an instance and also remove previous control in the panel.
For example
private void button1_Click(object sender, EventArgs e)
{
foreach (Control ctrl in panel1.Controls)
{
ctrl.Dispose();
}
panel1.Controls.Add(new UserControl1());
}
private void button2_Click(object sender, EventArgs e)
{
foreach (Control ctrl in panel1.Controls)
{
ctrl.Dispose();
}
panel1.Controls.Add(new UserControl2());
}
或者....
使用如下所示的隐藏和显示方式
Alternatively....
Use hide and show as below
public partial class Form1 : Form
{
private UserControl1 ctrl1;
private UserControl2 ctrl2;
public Form1()
{
InitializeComponent();
}
private void toggleUserCtrl(object sender, EventArgs e)
{
if (sender.Equals(button1))
{
ctrl1.Visible = true;
ctrl2.Visible = false;
}else if(sender.Equals(button2)){
ctrl1.Visible = false;
ctrl2.Visible = true;
}
}
private void Form1_Load(object sender, EventArgs e)
{
ctrl1 = new UserControl1();
ctrl2 = new UserControl2();
panel1.Controls.Add(ctrl1);
panel1.Controls.Add(ctrl2);
ctrl1.Visible = true;
ctrl2.Visible = false;
button1.Click += new EventHandler(toggleUserCtrl);
button2.Click += new EventHandler(toggleUserCtrl);
}
}
这篇关于如何将UserControl加载到面板中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文