首先在同一命名空间下添加新建多个窗体,选用一个作为主窗体,其他窗体作为子窗体。
经导师指导,我采用在主窗体加入一个面板,面板中调用三个主窗体的方法,经实践记录如下:
步骤1:新建项目
主窗体我采用的DevExpress配件,当然直接新建普通的winform窗体也可以
步骤2:在同一个命名空间下添加多个窗体作为子窗体
依次添加完成后,分别将窗体的(Name)属性修改为特定的名称(最好体现出该子窗体的功能,方便之后写程序)
步骤3:在主窗体中定义一个panel控件,用作子窗体的父容器
步骤4:在主窗体中定义三个子窗体
DigtalHandWritingForm sonForm1 = new DigtalHandWritingForm();
picture_load sonForm2 = new picture_load();
train_model sonForm3 = new train_model();
定义子窗体的父容器为panel1
sonForm1.Parent = this.panel1;
sonForm1.Size = this.panel1.Size;
sonForm2.Parent = this.panel1;
sonForm2.Size = this.panel1.Size;
sonForm3.Parent = this.panel1;
sonForm3.Size = this.panel1.Size;
对子窗体的一些其他操作:
//将当前子窗体设置成非顶级控件
sonForm1.TopLevel = false;
sonForm2.TopLevel = false;
sonForm3.TopLevel = false;
//设置窗体最大化
sonForm1.WindowState = FormWindowState.Maximized;
sonForm2.WindowState = FormWindowState.Maximized;
sonForm3.WindowState = FormWindowState.Maximized;
//去掉窗体边框
sonForm1.FormBorderStyle = FormBorderStyle.None;
sonForm2.FormBorderStyle = FormBorderStyle.None;
sonForm3.FormBorderStyle = FormBorderStyle.None;
步骤5:初始化子窗体的状态,让子窗体全部显示,并设置可见性为隐藏
//初始子窗体全部隐藏
sonForm2.Visible = false;
sonForm3.Visible = false;
sonForm3.Visible = false;
//子窗体全部显示
sonForm1.Show();
sonForm2.Show();
sonForm3.Show();
关于窗体隐藏也可参考如下链接
窗体隐藏:窗体隐藏
步骤6:定义三个按钮,通过按钮的点击事件来实现窗体的切换,这时候窗体的Visible属性显得就很重要了
private void barButtonItem15_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
sonForm2.Visible = false;
sonForm3.Visible = false;
sonForm1.Visible = true;
}
private void barButtonItem17_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
sonForm1.Visible = false;
sonForm3.Visible = false;
sonForm2.Visible = true;
}
private void barButtonItem5_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
sonForm1.Visible = false;
sonForm2.Visible = false;
sonForm3.Visible = true;
}
演示一下程序效果:
c#主窗体添加子窗体演示