WinForm MDI里打开一个子窗口然后最大化,再打开其他子窗口如何保持原样? WinForm MDI里打开一个子窗口然后最大化,再打开其他子窗口也变成最大化打开了,如何能按默认大小打开? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private bool checkChildFrmExist(string childFrmName) { foreach(Form childFrm in MdiChildren) { if (childFrm.Name ==childFrmName ) { if (childFrm.WindowState==FormWindowState.Minimized) childFrm.WindowState = FormWindowState.Normal; //childFrm.WindowState = FormWindowState.Maximized; childFrm.Activate(); return true; } } return false; } 最简单的办法就是在窗体的.Show()之后,再加一句childFrm.WindowState = FormWindowState.Normal; 谢谢各位,还有点问题。如果我是以反射的方式创建的新窗口呢?OpenWindow(typeof(FormTest).ToString(), "测试窗体");如何控制这个FormTest按默认大小显示呢?#region 反射方法来处理每个子窗体只保留一个实例/************************************************************ * 调用方法,打开一个MDI子窗口* OpenWindow(typeof(子窗口).ToString(), string(子窗口标题), Form(this)父窗口句柄); /*************************************************************/private void OpenWindow(string ChildTypeString, string FormText, Form Handle){ Form myChild = null; if (!ContainMDIChild(ChildTypeString)) { // 获取当前进程的集合 Assembly assembly = Assembly.GetExecutingAssembly(); // 创建数据类型使用类型字符串 Type typForm = assembly.GetType(ChildTypeString); // 创建对象使用类型的"InvokeMember"方法 Object obj = typForm.InvokeMember( null, BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance, null, null, new Object[] { Handle }); // 显示子窗口 if (obj != null) { myChild = obj as Form; myChild.MdiParent = this; myChild.StartPosition = FormStartPosition.CenterScreen; myChild.Text = FormText; myChild.Show(); myChild.Focus(); } }}#endregion 此安装不支持该项目类型(csproj) C#读取xml到sql数据库 新手问题. 如何从收藏夹中的*.url了文件中获取详细信息(地址,日期等) 求一ORACLE的连接程序 请问如何使用system.io.stream 和size 构造一个Bitmap C#中的Excel插入问题(郁闷中!) winform中向数据库表插入记录后重新填充dataset,便dataset中的数据为何无法刷新? WinForm下listBox显示SQL中的用户表? webForm的password问题 新手请教 如何调用这个函数? 请教关于DataGridView控件的问题
{
foreach(Form childFrm in MdiChildren)
{
if (childFrm.Name ==childFrmName )
{
if (childFrm.WindowState==FormWindowState.Minimized)
childFrm.WindowState = FormWindowState.Normal;
//childFrm.WindowState = FormWindowState.Maximized;
childFrm.Activate();
return true;
}
}
return false;
}
OpenWindow(typeof(FormTest).ToString(), "测试窗体");如何控制这个FormTest按默认大小显示呢?
#region 反射方法来处理每个子窗体只保留一个实例
/************************************************************
* 调用方法,打开一个MDI子窗口
* OpenWindow(typeof(子窗口).ToString(), string(子窗口标题), Form(this)父窗口句柄);
/*************************************************************/
private void OpenWindow(string ChildTypeString, string FormText, Form Handle)
{
Form myChild = null;
if (!ContainMDIChild(ChildTypeString))
{
// 获取当前进程的集合
Assembly assembly = Assembly.GetExecutingAssembly();
// 创建数据类型使用类型字符串
Type typForm = assembly.GetType(ChildTypeString);
// 创建对象使用类型的"InvokeMember"方法
Object obj = typForm.InvokeMember(
null,
BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.CreateInstance,
null,
null,
new Object[] { Handle });
// 显示子窗口
if (obj != null)
{
myChild = obj as Form;
myChild.MdiParent = this;
myChild.StartPosition = FormStartPosition.CenterScreen;
myChild.Text = FormText;
myChild.Show();
myChild.Focus();
}
}
}
#endregion