积极答复者
C# Winform里可不可以将一个窗口添加到另一个窗口中?

问题
答案
-
在主窗体属性里找 IsMidContainer选为True
在主窗体调用子窗体是这样写
frmRoutesManage routesManage = new frmRoutesManage();
routesManage.MdiParent = this;
routesManage.Show();
子窗体FormLoad时加这2句
private void frmRoutesManage_Load(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
this.FormBorderStyle = FormBorderStyle.Sizable;
....code....
}
这样就可以了
If this is helpful
{ Please Mark as Answered }
else if it is not helpful
{ Un-Mark as Answered }
Best Regards
Huan Li, Code Blog: Small is New Big In C#- 已建议为答案 kooboobird 2010年7月8日 2:40
- 已标记为答案 KeFang Chen 2010年7月9日 5:13
-
不用设置MDI窗体也可以把一个窗体添加到另一个窗体中
下面的代码把窗体3添加到窗体4的PANEL控件中
你可以把窗体的TopLevel属性设为false
private void Form4_Load(object sender, EventArgs e)
{
//把form3窗体添加到form4中的panel控件中
Form3 f3 = new Form3();
f3.Show();
f3.TopLevel = false;this.panel1.Controls.Add(f3);
}
.net/asp.net开发群118343907- 已标记为答案 KeFang Chen 2010年7月9日 5:13
-
如果不容易拆成UserControl,可以考虑用“碎片”解决后台代码过多的问题。
文件1:Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Show();
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}文件2:Class2.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace Test
{
public partial class Form1 : Form
{
private void Show()
{
MessageBox.Show("hello");
}
}
}说明:碎片数量不限。
- 已标记为答案 KeFang Chen 2010年7月9日 5:13
全部回复
-
在主窗体属性里找 IsMidContainer选为True
在主窗体调用子窗体是这样写
frmRoutesManage routesManage = new frmRoutesManage();
routesManage.MdiParent = this;
routesManage.Show();
子窗体FormLoad时加这2句
private void frmRoutesManage_Load(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Maximized;
this.FormBorderStyle = FormBorderStyle.Sizable;
....code....
}
这样就可以了
If this is helpful
{ Please Mark as Answered }
else if it is not helpful
{ Un-Mark as Answered }
Best Regards
Huan Li, Code Blog: Small is New Big In C#- 已建议为答案 kooboobird 2010年7月8日 2:40
- 已标记为答案 KeFang Chen 2010年7月9日 5:13
-
不用设置MDI窗体也可以把一个窗体添加到另一个窗体中
下面的代码把窗体3添加到窗体4的PANEL控件中
你可以把窗体的TopLevel属性设为false
private void Form4_Load(object sender, EventArgs e)
{
//把form3窗体添加到form4中的panel控件中
Form3 f3 = new Form3();
f3.Show();
f3.TopLevel = false;this.panel1.Controls.Add(f3);
}
.net/asp.net开发群118343907- 已标记为答案 KeFang Chen 2010年7月9日 5:13
-
如果不容易拆成UserControl,可以考虑用“碎片”解决后台代码过多的问题。
文件1:Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Show();
}
private void button1_Click(object sender, EventArgs e)
{
}
}
}文件2:Class2.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;namespace Test
{
public partial class Form1 : Form
{
private void Show()
{
MessageBox.Show("hello");
}
}
}说明:碎片数量不限。
- 已标记为答案 KeFang Chen 2010年7月9日 5:13