我试图在主窗体上单击时打开一个新表单。 问题是新的形式出现了,但没有任何组件,只有embty形式 这就是我写的。
private void button2_Click(object sender, EventArgs e)
{
Form rr = new Form();
this.Hide();
rr.ShowDialog();
}
答案 0 :(得分:1)
那是因为你打开了基本的表单而不是你的表单(带有控件)。
假设您的表单类(您设计的)是MyForm
,那么您应该将其设置为
private void button2_Click(object sender, EventArgs e) {
MyForm rr = new MyForm(); // <- MyForm not Form!
rr.ShowDialog();
}
答案 1 :(得分:0)
问题:这是因为您只是在不添加Form
的情况下创建和显示新的controls
。
方法1:您可以向运行时创建的表单添加控件。
试一试:在Label
上添加Form
- 同样可以添加其他控件。
Form rr = new Form();
Label l1=new Label();
l1.Text = "label 1";
rr.Controls.Add(l1);
this.Hide();
rr.ShowDialog();
方法2:您可以从NewForm
创建IDE
,然后添加controls
中的DesignView
。
从Visual Studio
IDE添加表单:
1。右键点击project
2。选择Add
- &gt; Windows Form...
3。现在输入表单名称 - &gt; SampleForm
4. 现在在新创建的controls
上添加SampleForm
5. 显示新创建的表单
SampleForm sample=new SampleForm();
sample.ShowDialog();
答案 2 :(得分:0)
我有一个小帮手功能女巫就是这样:
private void ShowForm<T>() where T: Form, new ()
{
this.Hide();
T form = new T();
form.FormClosed += (s, e) => this.Show();
form.Show();
}
这是一个像故事板一样工作的主要形式,例如当有人点击一个按钮并且我要显示一个新表格时我会这样做:
private void SomeButton_Click(object sender, EventArgs e)
{
ShowForm<PublishersForm>();
}