winform如何判断控件可见性?这个可见性不是Visible属性。
winform如何判断控件可见性?这个可见性不是Visible属性。看见是指屏幕上能看到。未隐藏,没有被其他窗口覆盖,或者没有在一个tabpage中给转到后面!IsWin...
winform如何判断控件可见性?这个可见性不是Visible属性。
看见是指屏幕上能看到。未隐藏,没有被其他窗口覆盖,或者没有在一个tabpage中给转到后面!
IsWindowVisible函数已经测试了,不行的,这个跟Visible属性一样。
没财富值,看不懂就别回答了,拜托。 展开
看见是指屏幕上能看到。未隐藏,没有被其他窗口覆盖,或者没有在一个tabpage中给转到后面!
IsWindowVisible函数已经测试了,不行的,这个跟Visible属性一样。
没财富值,看不懂就别回答了,拜托。 展开
展开全部
没有一个 Windows API 或 CLR 自带函数能完成题主的要求。
折衷方案:
1、如果该控件被其他窗口覆盖了,那么该控件所在窗口一定不是激活窗体(MDI 父窗体除外)。那么先用 GetForegroundWindow、GetActiveWindow 之类的API (MDI 子窗体直接有 Actived 属性)判断控件所在窗体是否是激活窗体。
2、如果控件所在窗口确实为激活窗体,且存在多个 TabPage,那么可以在 TabControl 的 SelectedIndexChanged 事件中设置一个变量,判断被激活的的 TabPage 是否是控件所在的 TabPage。
此种方法存在一定不足,即当前激活窗体没有遮住控件,但有一个非激活窗体遮住控件了,在第一步中不会被判断出。因为 Windows 没开放 Z 序管理的相关 API,所以也没办法知道究竟有多少个窗口处在控件所在窗口的 Z 序前面。
折衷方案:
1、如果该控件被其他窗口覆盖了,那么该控件所在窗口一定不是激活窗体(MDI 父窗体除外)。那么先用 GetForegroundWindow、GetActiveWindow 之类的API (MDI 子窗体直接有 Actived 属性)判断控件所在窗体是否是激活窗体。
2、如果控件所在窗口确实为激活窗体,且存在多个 TabPage,那么可以在 TabControl 的 SelectedIndexChanged 事件中设置一个变量,判断被激活的的 TabPage 是否是控件所在的 TabPage。
此种方法存在一定不足,即当前激活窗体没有遮住控件,但有一个非激活窗体遮住控件了,在第一步中不会被判断出。因为 Windows 没开放 Z 序管理的相关 API,所以也没办法知道究竟有多少个窗口处在控件所在窗口的 Z 序前面。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询