c#在panel或groupbox中添加窗体,实现点击不同按钮或combox时panel中窗体切换,在xtratabcontrol中添加窗体
参考panel添加窗体:
http://blog.csdn.net/illegalname/article/details/65444249
http://blog.csdn.net/Eastmount/article/details/21461275
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Threading.Tasks; 9 using System.Windows.Forms; 10 11 namespace WindowsFormsPanel 12 { 13 public partial class Form1 : Form 14 { 15 CSUHForm2 win1 = new CSUHForm2(); 16 UHForm2 win2 = new UHForm2(); 17 CamClayForm2 win3 = new CamClayForm2(); 18 // win1 =new CSUHForm2 (); 19 //win2=new UHForm2 (); 20 //win3=new CamClayForm2 (); 21 public Form1() 22 { 23 InitializeComponent(); 24 } 25 26 private void Form1_Load(object sender, EventArgs e) 27 { 28 29 } 30 31 private void groupBox1_Enter(object sender, EventArgs e) 32 { 33 34 } 35 36 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 37 { 38 if (comboBox1.SelectedIndex > -1) 39 { 40 switch (comboBox1.SelectedItem.ToString()) 41 { 42 case "CSUH": 43 { 44 45 this.groupBox1.Controls.Clear(); 46 win1.TopLevel = false; 47 win1.FormBorderStyle = FormBorderStyle.None; 48 win1.Dock = System.Windows.Forms.DockStyle.Fill; // 填充panel 49 this.groupBox1.Controls.Add(win1); // 添加w1窗体 50 win1.Show(); 51 52 this.panel1.Controls.Clear(); // 清空原有的控件 53 win1.TopLevel = false; // 非顶级窗口 54 win1.FormBorderStyle = FormBorderStyle.None; // 不显示标题栏 55 win1.Dock = System.Windows.Forms.DockStyle.Fill; // 填充panel 56 this.panel1.Controls.Add(win1); // 添加w1窗体 57 win1.Show(); 58 59 } 60 61 break; 62 case "UH": 63 { 64 this.groupBox1.Controls.Clear(); 65 win2.TopLevel = false; 66 win2.FormBorderStyle = FormBorderStyle.None; 67 win2.Dock = System.Windows.Forms.DockStyle.Fill; // 填充panel 68 this.groupBox1.Controls.Add(win2); // 添加w1窗体 69 win2.Show(); 70 71 this.panel1.Controls.Clear(); // 清空原有的控件 72 win2.TopLevel = false; // 非顶级窗口 73 win2.FormBorderStyle = FormBorderStyle.None; // 不显示标题栏 74 win2.Dock = System.Windows.Forms.DockStyle.Fill; // 填充panel 75 this.panel1.Controls.Add(win2); // 添加w1窗体 76 win2.Show(); 77 } 78 79 break; 80 case "CamClay": 81 { 82 this.groupBox1.Controls.Clear(); 83 win3.TopLevel = false; 84 win3.FormBorderStyle = FormBorderStyle.None; 85 win3.Dock = System.Windows.Forms.DockStyle.Fill; // 填充panel 86 this.groupBox1.Controls.Add(win3); // 添加w1窗体 87 win3.Show(); 88 89 this.panel1.Controls.Clear(); // 清空原有的控件 90 win3.TopLevel = false; // 非顶级窗口 91 win3.FormBorderStyle = FormBorderStyle.None; // 不显示标题栏 92 win3.Dock = System.Windows.Forms.DockStyle.Fill; // 填充panel 93 this.panel1.Controls.Add(win3); // 添加w1窗体 94 win3.Show(); 95 } 96 //dataGridView1.BackgroundColor = Color.Red; 97 break; 98 } 99 } 100 101 } 102 103 104 } 105 }
在groupbox中添加窗体:
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Threading.Tasks; 9 using System.Windows.Forms; 10 11 namespace LabOpt2 12 { 13 public partial class Form2GASetting : Form 14 { 15 public Form2GASetting() 16 { 17 InitializeComponent(); 18 19 //在Form2GASetting的panel中添加gridcontrol 20 Form3CSUHConstitutiveSetting ModelParaSettingWin = new Form3CSUHConstitutiveSetting();//实例化一个参数设定窗口的实例化 21 ModelParaSettingWin.TopLevel = false; // ModelParaSettingWin设为非顶级窗口 22 ModelParaSettingWin.FormBorderStyle = FormBorderStyle.None; // ModelParaSettingWin设定为不显示标题栏 23 ModelParaSettingWin.Parent = panel1ModelParaSetting;// 将ModelParaSettingWin这个窗体的父容器设定为panel1ModelParaSetting这个panel,有无这句都行 24 ModelParaSettingWin.Dock = System.Windows.Forms.DockStyle.Fill; // 将窗体铺满这个panel 25 this.panel1ModelParaSetting.Controls.Add(ModelParaSettingWin); 26 ModelParaSettingWin.Show();//显示SpreadSheetReadWin窗体在主窗体的panelCtrols1中 27 28 //在Form2GASetting的groupcontrol组中添加gridcontrol 29 Form3CSUHConstitutiveSetting ModelParaSettingWin2 = new Form3CSUHConstitutiveSetting();//实例化一个参数设定窗口的实例化 30 ModelParaSettingWin2.TopLevel = false; // ModelParaSettingWin设为非顶级窗口 31 ModelParaSettingWin2.FormBorderStyle = FormBorderStyle.None; // ModelParaSettingWin设定为不显示标题栏 32 ModelParaSettingWin2.Parent = groupControl1ModelParaSetting;// 将ModelParaSettingWin这个窗体的父容器设定为panel1ModelParaSetting这个panel,有无这句都行 33 ModelParaSettingWin2.Dock = System.Windows.Forms.DockStyle.Fill; // 将窗体铺满这个panel 34 this.groupControl1ModelParaSetting.Controls.Add(ModelParaSettingWin2); 35 ModelParaSettingWin2.Show();//显示SpreadSheetReadWin窗体在主窗体的panelCtrols1中 36 } 37 38 39 40 private void comboBoxEdit1SelectModel_SelectedIndexChanged(object sender, EventArgs e) 41 { 42 switch (comboBoxEdit1SelectModel.SelectedItem.ToString()) 43 { 44 case "CSUH": 45 { 46 47 MessageBox.Show("选择了CSUH"); 48 49 } 50 break; 51 case "UH": 52 { 53 //Form3CSUHConstitutiveSetting ModelParaSettingWin = new Form3CSUHConstitutiveSetting();//实例化一个参数设定窗口的实例化 54 //ModelParaSettingWin.TopLevel = false; // ModelParaSettingWin设为非顶级窗口 55 //ModelParaSettingWin.FormBorderStyle = FormBorderStyle.None; // ModelParaSettingWin设定为不显示标题栏 56 //ModelParaSettingWin.Parent = panel1ModelParaSetting;// 将ModelParaSettingWin这个窗体的父容器设定为panel1ModelParaSetting这个panel,有无这句都行 57 //ModelParaSettingWin.Dock = System.Windows.Forms.DockStyle.Fill; // 将窗体铺满这个panel 58 ////Form3CSUHConstitutiveSetting.gridControl1ParaRange 59 //this.panel1ModelParaSetting.Controls.Add(ModelParaSettingWin); 60 //// ModelParaSettingWin.SelectedTabPage = xtraTabPageInputExcel;//在xtraTabControl1Form1这个tabcontrol中显示第一页即xtraTabPageInputExcel 61 ////xtraTabPageInputExcel.Controls.Add(SpreadSheetReadWin); //在xtraTabPageInputExcel这个page中添加SpreadSheetReadWin窗体 62 //ModelParaSettingWin.Show();//显示SpreadSheetReadWin窗体在主窗体的panelCtrols1中 63 ////Form3CSUHConstitutiveSetting.panel1ModelParaSetting 64 MessageBox.Show("选择了CSUH"); 65 66 } break; 67 case "ModifiedCamClay": 68 { 69 MessageBox.Show("选择了ModifiedCamClay模型"); 70 } 71 break; 72 case "CamClay": 73 { 74 MessageBox.Show("选择了CamClay模型"); 75 } 76 break; 77 } 78 } 79 80 private void panel1ModelParaSetting_Paint(object sender, PaintEventArgs e) 81 { 82 83 } 84 } 85 }
怎样切换page呢:
xtraTabControl1.SelectedTabPage = xtraTabPage2;
xtraTabControl3.SelectedTabPage = xtraTabPage7;
1 private void barButtonItem10_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) 2 { 3 4 Form2GASetting GaSettingWin = new Form2GASetting(); 5 //this.panelControl1.Controls.Clear(); // 清空主窗体panelCtrols1内原有的控件 6 //SpreadSheetReadWin.Hide ();//这一句可以代替上面的清除语句 7 GaSettingWin.TopLevel = false; // SpreadSheetReadWin非顶级窗口 8 GaSettingWin.FormBorderStyle = FormBorderStyle.None; // 不显示标题栏 9 GaSettingWin.Dock = System.Windows.Forms.DockStyle.Fill; // 填充panel 10 //this.panelControl1.Controls.Add(GaSettingWin); // 添加SpreadSheetReadWin窗体 11 this.panelControl1.Controls.Add(xtraTabControl1Form1);//用这个选项卡填充panel 12 xtraTabControl1Form1.SelectedTabPage = xtraTabPageSetting;//在Form1中的xtraTabControl1Form1这个tabcontrol中显示第二页即xtraTabPageSetting 13 xtraTabPageSetting.Controls.Add(GaSettingWin); 14 GaSettingWin.Show();//显示SpreadSheetReadWin窗体在主窗体的panelCtrols1中 15 }
在xtratabcontrol中添加窗体:
http://www.cnblogs.com/w2011/archive/2013/02/18/2915794.html