软件中查找窗口的效果如何实现的? 以 VS2008 为例, CTRL+F 会弹出“查找和替换”窗口,如果此时最小化 VS2008 主窗口,“查找和替换”窗口就会跟着消失(内部窗口不会留在桌面上)。现在项目中需要点击“查找下一个”,弹出另一个窗口,要求最小化主界面时,系统内部所有的窗口都要消失,点击任务栏中系统任务时,所有的窗口都会显示在原来的位置。小弟半路出家,请各位高人指点一下,不胜感激 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 开子窗的时候留个引用在主窗体的代码中 private void Form1_Resize(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Minimized) { childform.WindowState = FormWindowState.Minimized; } } 对,现在内部窗口都是通过 new 出来的。 当最小化主界面窗体时,new 出来的窗体不会最小化。 晕了,我的怎么会呢?你new出来的窗体是不是子窗体 利用Application.OpenForms吧。当主窗体最小化或恢复时,相应的最小化和恢复打开的窗体 我没有使用 MDI , new 出来的不是子窗体 private void Form1_Resize(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Minimized) { foreach (Form frm in Application.OpenForms) { if (frm.Text != "主窗体Text") { frm.Hide(); } } } else { foreach (Form frm in Application.OpenForms) { if (frm.Text != "主窗体Text") { frm.Show(); } } } } this.isMdiContainer = true;MdiChild frmMdiChild=new MdiChild();frmMdiChild.MdiParent=this;frmMdiChild.Show();我试过 这样不行 感谢各位的帮忙! 特别感谢 starts_2000 和 BitCoffee 提供的方法。没分啦,顺便问下:VS2008中,在查找窗口打开并获得焦点的情况下,点工具栏上的调试按钮马上可以进入调试状态,而且点击操作不会让查找窗口失去焦点,也不会使主界面窗体获得焦点。而在我的系统中,需要点击两次才能触发主界面工具栏上的按钮,第一次点击使主界面获得焦点,第二次点击才能真正触发工具栏中的按钮操作。这样很不爽!应该如何解决,谢过先。 还有一个问题,内部窗体要求在主界面的上面,我把内部窗体的TopMost 属性设置为True,是达到了效果,不过每当打开系统其他任务时,如word、文件夹、网页,内部窗体仍然在顶部,会挡住刚打开的程序。请问如何才能像VS2008查找窗口那样实实在在就是VS2008内部窗口? 请高人赐教,非常感谢! 经过测试,MDI是不能满足要求的。无意间发现了一个不错的解决办法,只要把内部窗体的Owner属性设置为主窗体即可。不过还残留一个问题:如,在VS2008中,在查找窗口打开并获得焦点的情况下,点工具栏上的调试按钮马上可以进入调试状态,而且点击操作不会让查找窗口失去焦点,也不会使主界面窗体获得焦点。 而在我的系统中,需要点击两次才能触发主界面工具栏上的按钮,第一次点击使主界面获得焦点,第二次点击才能真正触发工具栏中的按钮操作。是不是要通过 系统API实现??? 在WindowFrom中做查找,但是只能查找到最先一个是怎么回事??? 求教C#中如何比较浮点数的大小 我做了一个winform项目,要备份SQL数据库,后缀名为.bak,望诸位前辈帮帮忙,最好有代码提示! 复制本目录下的文件到一新文件夹的问题,要保持原有的目录结构 C#中的MouseHover停留时间怎么设置? 数组比较问题 先开100分求这样的动态画这样的图形,不够再加 C#打包的问题 写的一个windows服务,发布的时候老是应用程序验证未成功。日志提示标识不匹配。 c# socket 1对多(256个也可以) 通信 最简单的问题~~!~!~ 如果查询到的数据不为空,那么就值赋给textbox1.text WebBrowser中能否捕获alert()事件?
{
if (this.WindowState == FormWindowState.Minimized)
{
childform.WindowState = FormWindowState.Minimized;
}
}
对,现在内部窗口都是通过 new 出来的。 当最小化主界面窗体时,new 出来的窗体不会最小化。
private void Form1_Resize(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
foreach (Form frm in Application.OpenForms)
{
if (frm.Text != "主窗体Text")
{
frm.Hide();
}
}
}
else
{
foreach (Form frm in Application.OpenForms)
{
if (frm.Text != "主窗体Text")
{
frm.Show();
}
}
}
}
this.isMdiContainer = true;
MdiChild frmMdiChild=new MdiChild();
frmMdiChild.MdiParent=this;
frmMdiChild.Show();
我试过 这样不行