private AccessibleObject GetRuleFromMousePosition(Point mousePoint, C1RulesManager rulesManager) { var controlChildren = rulesManager.Controls; if (controlChildren == null) { return(null); } var controlChildrenCount = controlChildren.Count; if (controlChildrenCount == 0) { return(null); } var xView = controlChildren[0]; if (xView == null) { return(null); } var rulesManagerPanelAccessibilityObject = xView.AccessibilityObject; if (rulesManagerPanelAccessibilityObject == null) { return(null); } var accessibilityObjectChildrenCount = rulesManagerPanelAccessibilityObject.GetChildCount(); if (accessibilityObjectChildrenCount == 0) { return(null); } var rulesListAccessibilityObject = rulesManagerPanelAccessibilityObject.GetChild(0); if (rulesListAccessibilityObject == null) { return(null); } var rulesListAccessibilityObjectChildrenCount = rulesListAccessibilityObject.GetChildCount(); if (rulesListAccessibilityObjectChildrenCount == 0) { return(null); } for (var childIndex = 0; childIndex < rulesListAccessibilityObjectChildrenCount; childIndex++) { var ruleAccessibilityObject = rulesListAccessibilityObject.GetChild(childIndex); if (ruleAccessibilityObject != null && ruleAccessibilityObject.Name == "Rule" && ruleAccessibilityObject.Bounds.Contains(mousePoint)) { return(ruleAccessibilityObject); } } return(null); }