所以我有4个表格。在Form1
里面有2个面板和一个按钮。当我点击button1
上的Form1
时,会在第一个面板上打开Form2
。所以在Form2
里面有2个按钮。 button1_Click
方法在Form3
的第二个面板上显示Form1
。如何显示Form4
在button2_Click
的方法Form2
的第二个面板上?
private void button2_Click(object sender, EventArgs e)
{
Form4 myForm = new Form4();
myForm.TopLevel = false;
myForm.AutoScroll = true;
var Form1 = Application.OpenForms.OfType<Form1>().Where(x => x.Name == "Form1").FirstOrDefault();
Form1.panel2.Controls.Add(myForm);
myForm.Show();
}`
这是我在第二个面板上尝试显示Form4
的代码。但它不会取代当前出现在Form3
第二个面板上的Form1
。我真的不知道该怎么办。请帮忙。提前谢谢。
答案 0 :(得分:0)
所以从表单2开始,你希望能够在panel2中加载form3或form4吗?
private Form3 form3 = null;
private Form4 form4 = null;
private void button2_Click(object sender, EventArgs e)
{
if (form3 != null)
{
Form1.panel2.Controls.Remove(form3);
form3.Close();
form3 = null;
}
form4 = new Form4();
form4.TopLevel = false;
form4.AutoScroll = true;
var Form1 = Application.OpenForms.OfType<Form1>().Where(x => x.Name == "Form1").FirstOrDefault();
Form1.panel2.Controls.Add(form4);
form4.Show();
}`
并对Form3执行相同操作(在创建form3之前删除并关闭form4)
还可以考虑像HansPassant在评论中建议的那样设置form3和form4属性。
答案 1 :(得分:-2)
Panel1.Controls.Clear()
将关闭所有活动表单,而Panel1.Dispose()
将放置所有控件。