关于窗体大小变化的问题 在winform中我有一个Main做为主窗体。在Main中我放置了splitContainer1控件分为panel1和panel2两部分。在panel1中我放置菜单项目。panel2中我根据panel1中菜单的点击加载窗体在panel2中显示。但是我要如何控制才能让窗体在panel2中显示的时候始终是充满panel2的。并且当主窗体main拖动改变大小时,panel2中的窗体随着自动变化。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 splitContainer1.Dock = Dock.Fill Dock 或 Anchor 属性... 那你看看splitContainer1控件的父容器是什么你这样看看效果this.splitContainer1.Parent = this;splitContainer1.Dock = Dock.Fill; 我已经将splitContainer1放在主窗体main当中。已经是填充整个main了。我是说我根据菜单加载的其他窗体放在了splitContainer1的panel2中,就是说其他窗体在panel2中是不根据panel2的大小变化而变化的 设置你所谓的“其他窗体”(窗体?)的Dock或Anchor属性...每次加载都要设置... 嗯 每次加载后都需要 例如MyControl mcon = new MyControl();mcon.Parent = this.SContner.Panel2;mcon.Dock = DockStyle.Fill; private void navBarControl1_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { this.splitContainer1.Panel2.Controls.Clear(); this.splitContainer1.Panel2.SuspendLayout(); LoadForm("DispatchDep.Form_DDSearch"); } /// <summary> /// 加载窗体 /// </summary> /// <param name="form">窗体名称</param> private void LoadForm(string FormName) { object obj = null; try { Assembly assm = Assembly.LoadFrom(Application.StartupPath + "\\LTMS.exe"); Type TypeToLoad = assm.GetType("LTMS." + "DispatchDep.Form_DDSearch"); obj = Activator.CreateInstance(TypeToLoad); } catch (Exception ex) { Common.AlertMessage.ErrorMsg(ex.Message); } Form form = (Form)obj; form.TopLevel = false; form.FormBorderStyle = FormBorderStyle.None; this.splitContainer1.Panel2.Controls.Add(form); form.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); form.Parent = this.splitContainer1.Panel2; form.Dock = DockStyle.Fill; form.Show(); }我已经这样子写了可还是不行! 可能不是Dock那么简单,楼主应该会想到Dock的 Form...还真是窗体啊...-_-!Form哪能这样用啊...它也没有Dock和Anchor属性啊... form.WindowState = FormWindowState.Maximized; 你不会用UserControl啊...窗体顾名思义就是独立显示的嘛... private void navBarControl1_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e) { this.splitContainer1.Panel2.Controls.Clear(); this.splitContainer1.Panel2.SuspendLayout(); LoadForm("DispatchDep.Form_DDSearch"); this.splitContainer1.Panel2.ResumeLayout();//加上这句话就好用了! } 小项目要完成了,卡在这里,请各位留心下! 公司有台连接着vpn的机器, 家里电脑vpn到公司,家里电脑如何远程到公司这台机器? 关于一个string集合中数据插入数据库中问题?? 万事具备,只欠东风! winform下的報表問題 在XSLT如何将节点集转换为多列的表格 关于数组属性的问题? 超难问题,高分请教。如实现,可以再加1000分 如何检验一个用户是否拥有管理员权限?用那个API,怎么用? Modbus RTU与PLC通讯问题 control.BeginInvoke和control.Invoke执行时的问题!!! big5转换uft8
splitContainer1.Dock = Dock.Fill;
mcon.Parent = this.SContner.Panel2;
mcon.Dock = DockStyle.Fill;
{
this.splitContainer1.Panel2.Controls.Clear();
this.splitContainer1.Panel2.SuspendLayout(); LoadForm("DispatchDep.Form_DDSearch");
} /// <summary>
/// 加载窗体
/// </summary>
/// <param name="form">窗体名称</param>
private void LoadForm(string FormName)
{
object obj = null; try
{
Assembly assm = Assembly.LoadFrom(Application.StartupPath + "\\LTMS.exe");
Type TypeToLoad = assm.GetType("LTMS." + "DispatchDep.Form_DDSearch");
obj = Activator.CreateInstance(TypeToLoad);
}
catch (Exception ex)
{
Common.AlertMessage.ErrorMsg(ex.Message);
} Form form = (Form)obj;
form.TopLevel = false;
form.FormBorderStyle = FormBorderStyle.None;
this.splitContainer1.Panel2.Controls.Add(form);
form.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
form.Parent = this.splitContainer1.Panel2;
form.Dock = DockStyle.Fill;
form.Show(); }我已经这样子写了可还是不行!
{
this.splitContainer1.Panel2.Controls.Clear();
this.splitContainer1.Panel2.SuspendLayout(); LoadForm("DispatchDep.Form_DDSearch"); this.splitContainer1.Panel2.ResumeLayout();//加上这句话就好用了! }