- 在另一线程中执行Find等操作
代码IntPtr handle = frm.Handle;
Action act = () =>
{
UIAutomationMapping mapping = new UIAutomationMapping(handle);
foreach (AutomationElement item in mapping.CheckedListBoxColumnNamesRows)
{
item.SetFocus();
SendKeys.SendWait(" "); // Send a {SPACE} to check the checkbox.
}
InvokePattern aeOkButtonClick = (InvokePattern)mapping.ButtonOk.GetCurrentPattern(InvokePattern.Pattern);
aeOkButtonClick.Invoke();
};
act.BeginInvoke(null, null); - 查找列表:
this.CheckedListBoxColumnNames.FindAll(TreeScope.Descendants,
new PropertyCondition(
AutomationElement.ControlTypeProperty,
ControlType.ListItem)); - TogglePattern似乎对CheckListBox不起作用, 可用如下代码代替:
item.SetFocus();
SendKeys.SendWait(" "); // Send a {SPACE} to check the checkbox.