C#真的无法解决用SendMessage获取checkbox状态吗

 我来答
就烦条0o
2017-07-27 · 知道合伙人软件行家
就烦条0o
知道合伙人软件行家
采纳数:33315 获赞数:46492
从事多年系统运维,喜欢编写各种小程序和脚本。

向TA提问 私信TA
展开全部
关于用C#来进行一些GUI操作,最好的做法还是用.net本身自带Automation库,该库应该是最强大的GUI操作库了,所有的windows控件都可以用这个来操作,用法非常简单,例如你这个获取checkbox状态的,我写了个函数:
bool GetCheckBoxState(string windowName, string controlName)
{
AutomationElement desktop = AutomationElement.RootElement;
AutomationElement window = desktop.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, windowName));
AutomationElement checkbox = window.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, controlName));
return ((TogglePattern)checkbox.GetCurrentPattern(TogglePattern.Pattern)).Current.ToggleState == ToggleState.On;
}
不论你是用MFC,还是C# winform,还是WPF,用以上代码都可以准确获取checkbox的状态,而且该库还有一个配套的工具,叫UISpy,这个工具可以获取控件的各个属性以及该控件所拥有的操作方法,直接照着这个工具所获取的信息就可以写出代码来,十分容易
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式