Foxtable(狐表)用户栏目专家坐堂 → XP系统下使用窗口透明属性后 窗口加载后控件有黑边


  共有1872人关注过本帖树形打印复制链接

主题:XP系统下使用窗口透明属性后 窗口加载后控件有黑边

帅哥哟,离线,有人找我吗?
458445945
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:81 积分:805 威望:0 精华:0 注册:2015/9/19 12:53:00
XP系统下使用窗口透明属性后 窗口加载后控件有黑边  发帖心情 Post By:2016/3/20 23:51:00 [只看该作者]

因为控件较多 打开窗口时候闪烁比较严重 所以我都是加载窗口后先透明 然后定时器里再还原
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
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/21 2:48:00 [只看该作者]

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

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
458445945
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:81 积分:805 威望:0 精华:0 注册:2015/9/19 12:53:00
  发帖心情 Post By:2016/3/21 10:00:00 [只看该作者]

谢谢老师这么早就回复了,我试过隐藏后再显示同样还是会闪烁,
你不可以在afterLoad事件控制left和top?最后再移入?
这个我没试过,红袍老师,具体要怎么做啊?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:81 积分:805 威望:0 精华:0 注册:2015/9/19 12:53:00
  发帖心情 Post By: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")

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


 回到顶部