怎么实现动态设置控件可用性和可见性

 我来答
优修好1599
2017-01-09 · 超过206用户采纳过TA的回答
知道小有建树答主
回答量:519
采纳率:0%
帮助的人:245万
展开全部
没有一个 Windows API 或 CLR 自带函数能完成题主的要求。

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

此种方法存在一定不足,即当前激活窗体没有遮住控件,但有一个非激活窗体遮住控件了,在第一步中不会被判断出。因为 Windows 没开放 Z 序管理的相关 API,所以也没办法知道究竟有多少个窗口处在控件所在窗口的 Z 序前面。
Storm代理
2023-07-25 广告
StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,IP... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式