以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  XP系统下使用窗口透明属性后 窗口加载后控件有黑边  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82572)

--  作者:458445945
--  发布时间:2016/3/20 23:51:00
--  XP系统下使用窗口透明属性后 窗口加载后控件有黑边
因为控件较多 打开窗口时候闪烁比较严重 所以我都是加载窗口后先透明 然后定时器里再还原
afterlord
e.Form.BaseForm.Opacity = 0

timertick
e.Form.TimerEnabled = False
e.Form.BaseForm.Opacity = e.Form.BaseForm.Opacity + 1
 

这样处理后 win7下显示是正常的 窗口也不闪烁了 但部分XP系统下会出现控件黑边
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20160320234546.png
图片点击可在新窗口打开查看

--  作者:大红袍
--  发布时间:2016/3/21 2:48:00
--  

1、你不可以在afterLoad事件控制left和top?最后再移入?

 

2、不是也可以先设置 visible = false,或者 hide,最后show么?


--  作者:458445945
--  发布时间:2016/3/21 10:00:00
--  
谢谢老师这么早就回复了,我试过隐藏后再显示同样还是会闪烁,
你不可以在afterLoad事件控制left和top?最后再移入?
这个我没试过,红袍老师,具体要怎么做啊?

--  作者:大红袍
--  发布时间:2016/3/21 11:02:00
--  

比如

 

vars("left") = e.Form.BaseForm.Left

vars("top") = e.Form.BaseForm.Top

e.Form.BaseForm.Left = -1000

e.Form.BaseForm.Top = -1000

 

然后,在 timertick 事件,设置回来,如

 

e.Form.BaseForm.Left = vars("left")

e.Form.BaseForm.Top = vars("top")


--  作者:458445945
--  发布时间:2016/3/21 16:50:00
--  
以下是引用大红袍在2016/3/21 11:02:00的发言:

比如

 

vars("left") = e.Form.BaseForm.Left

vars("top") = e.Form.BaseForm.Top

e.Form.BaseForm.Left = -1000

e.Form.BaseForm.Top = -1000

 

然后,在 timertick 事件,设置回来,如

 

e.Form.BaseForm.Left = vars("left")

e.Form.BaseForm.Top = vars("top")

嗯嗯 这个可以,谢谢红袍老师!