窗体焦点问题,答对立即给分。(在线等)

RockyZhang 2004-09-30 09:39:55
我的程序有多个窗体。Form1、Form2、Form3...,FormMessage(除主窗体外,其他窗体都不在TaskBar上显示)
其中Form1是主窗体,Form2、Form3等是通过Form1上的Menu或Button点击,通过ShowDialog方法显示的子窗体。而FormMessage是通过主窗体上的Timer控件定时显示的窗体。
现我程序遇到如下问题请各位大侠赐教:
当我在Form1上点击Button,ShowDialog Form2后,用户可能需要操作其它应用程序,使我的程序失去焦点,在后面运行。而Form1上的Timer控件在此时已经开始触发,ShowDialog FormMessage. 之后,当用户再切换到我的程序中时,FormMessage仍在后台,无法显示,而Form2由于没有焦点,无法响应任何事件,致使程序无法操作,只能通过Alt+Tab的方法切换才能找到FormMessage。
(不知道描述清楚了没有。)
请问如何处理这类问题。
...全文
210 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wellshddelphi 2004-10-09
  • 打赏
  • 举报
回复
sc
RockyZhang 2004-09-30
  • 打赏
  • 举报
回复
TO: hbxtlhx(下着春雨的天)
答对了!谢谢!居然是这个小问题,这个小问题困扰了我半天。多谢呀!
接分!!!
北京的雾霾天 2004-09-30
  • 打赏
  • 举报
回复
你在用ShowDialog()的时候你会看到这是一个重载过的方法,你一定是用了没有参数的那个,你可以用
form.ShowDialog(frmParent)来显示你的窗体,这样就不会出现你的问题了.
也就是你一定要明确的指定你的窗体是模式显示到谁上的.
anantnt203120 2004-09-30
  • 打赏
  • 举报
回复
MDI不好看,不实用。是窗体属性设置的问题。
RockyZhang 2004-09-30
  • 打赏
  • 举报
回复
TO:singleflower(shifan(愿父亲安息))
当FormMessage显示出来后焦点在他的上面,所以此时Form1的Activated事件是无法触发的。

TO:jiezhi(風依舊)
FormMessage窗体内有要提示的一些数据列表,没办法在主窗体上的状态栏显示。能告诉我一些MDI的应用实例吗?谢谢。
RockyZhang 2004-09-30
  • 打赏
  • 举报
回复
MDI?
没用过,有这方面好的应用例子吗?
给个链接吧!最好有原码。
jiezhi 2004-09-30
  • 打赏
  • 举报
回复
使用mdi吧。
或者不要用窗体来显示提示信息,你可以在主窗体上的状态栏显示信息,告诉用户超时了。
singleflower 2004-09-30
  • 打赏
  • 举报
回复
在Form1的Activated事件将活动窗口设为Form2
cjzlxy 2004-09-30
  • 打赏
  • 举报
回复
为什么不用MDI?

110,536

社区成员

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

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

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