WinForm MDI里打开一个子窗口然后最大化,再打开其他子窗口如何保持原样?

云海玉弓缘 2010-04-20 10:11:15
WinForm MDI里打开一个子窗口然后最大化,再打开其他子窗口也变成最大化打开了,如何能按默认大小打开?
...全文
612 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ykgamer 2010-04-20
  • 打赏
  • 举报
回复
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;
}
云海玉弓缘 2010-04-20
  • 打赏
  • 举报
回复
多谢各位,解决了, 结贴去~
云海玉弓缘 2010-04-20
  • 打赏
  • 举报
回复
谢谢各位,还有点问题。

如果我是以反射的方式创建的新窗口呢?


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
JOCLI 2010-04-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 libinguest 的回复:]
最简单的办法就是在窗体的.Show()之后,再加一句


C# code
childFrm.WindowState = FormWindowState.Normal;
[/Quote]

先判断有没有已经打开窗体再作如上控制即可
风之影子 2010-04-20
  • 打赏
  • 举报
回复
最简单的办法就是在窗体的.Show()之后,再加一句

childFrm.WindowState = FormWindowState.Normal;
zsuswy 2010-04-20
  • 打赏
  • 举报
回复
你点的时候,是点的最大化的按钮还是还原按钮?

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧