作者cloudlim (OswinC)
看板C_Sharp
标题[问题] 请教关於多表单的显示顺序问题
时间Wed Jun 22 16:35:01 2011
大家好,
不好意思打扰了, 我的问题是这样的
目前有一个表单A 与 多个表单B
我希望让表单A跟表单B永远在最上层显示 但表单B比表单A更上层(B压在A上面)
我目前的解决方法是把 A 跟 B 的 TopMost 属性都设为true
然後在表单A的 Activated 或 GotFocus 事件里把所有的表单B都bringToFront
这样一来A跟B都会一直在画面中的最上层
即使滑鼠点表单A, 表单B也都会压在A上面
但有个丑陋的问题...就是A要把B bringToFront时
都会有画面重绘的现象 闪烁一下 Q_Q"
不知道有没有类似设定显示顺序的方式可以使用? (B最上层, A次一层, 其他...)
因为如果我只设定B的TopMost为true, 就不会有画面重绘而闪烁的问题
但这样一来A就有可能被其他的视窗盖掉
不知道这样的说明有没有清楚.........@@"
先谢过解答的大大罗 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.36.48.167
1F:→ bdvstg:用该Parent控制项的Controls.SetChildIndex来做设定 06/22 16:44
2F:→ bdvstg:数值越小越上面 06/22 16:44
3F:→ cloudlim:唔 最上层控制像没办法加入成为子控制项 所以好像没办法 06/22 17:18
4F:→ cloudlim:用这个方法耶@@" 06/22 17:18
5F:→ bdvstg:表单是指Form(一个视窗)吗@@? 06/23 07:38
6F:→ bdvstg:你是在A呼叫B.Show()吗? 情况允许用B.ShowDialog()吗? 06/23 07:47
8F:→ cloudlim:太太太~~~感激了 这就是我想要的东西 XD 找好久都找不到. 06/23 13:12