winform如何判断控件可见性?这个可见性不是Visible属性。

winform如何判断控件可见性?这个可见性不是Visible属性。看见是指屏幕上能看到。未隐藏,没有被其他窗口覆盖,或者没有在一个tabpage中给转到后面!IsWin... winform如何判断控件可见性?这个可见性不是Visible属性。
看见是指屏幕上能看到。未隐藏,没有被其他窗口覆盖,或者没有在一个tabpage中给转到后面!
IsWindowVisible函数已经测试了,不行的,这个跟Visible属性一样。
没财富值,看不懂就别回答了,拜托。
展开
 我来答
然后去远足
推荐于2018-04-13 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2384万
展开全部
没有一个 Windows API 或 CLR 自带函数能完成题主的要求。

折衷方案:
1、如果该控件被其他窗口覆盖了,那么该控件所在窗口一定不是激活窗体(MDI 父窗体除外)。那么先用 GetForegroundWindow、GetActiveWindow 之类的API (MDI 子窗体直接有 Actived 属性)判断控件所在窗体是否是激活窗体。
2、如果控件所在窗口确实为激活窗体,且存在多个 TabPage,那么可以在 TabControl 的 SelectedIndexChanged 事件中设置一个变量,判断被激活的的 TabPage 是否是控件所在的 TabPage。

此种方法存在一定不足,即当前激活窗体没有遮住控件,但有一个非激活窗体遮住控件了,在第一步中不会被判断出。因为 Windows 没开放 Z 序管理的相关 API,所以也没办法知道究竟有多少个窗口处在控件所在窗口的 Z 序前面。
阳光的雷咩咩
2014-06-20 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7667万
展开全部
那被遮住一半算是可见还是不可见?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式