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 无法导入以下密钥文件 在做WPF的客户端程序,需要屏蔽一些系统热键(顶着有份) 求c#智能截取字符串方法 倾分奉送!!如何获得其它线程的堆栈信息——高手进 如何用c#生成柱形百分比图? 大家请看 急求!!!!!窗体上显示多个图片 foreach 为什么不能用来遍历 CheckBoxList 大家看下面的对话框能用C#实现吗?是WEB对话框哦,用JAVA是怎么实现的?没学过,可惜 winform richTextBox 做表情时 ole可以插入图片,但无法取出 新手请教 如何调用这个函数? 请教关于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