首先在同一命名空間下添加建立多個窗體,選用一個作為主窗體,其他窗體作為子窗體。
經導師指導,我采用在主窗體加入一個面闆,面闆中調用三個主窗體的方法,經實踐記錄如下:
步驟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#主窗體添加子窗體示範