В UI Automation при автоматизации элементов панели инструментов мы сталкиваемся с проблемой, которая описана ниже.
Я добавляю элементы панели инструментов следующим образом
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripButton1,
this.toolStripButton2,
this.toolStripComboBox1,
this.toolStripButton3});
При запуске автоматизации пользовательского интерфейса (System.Windows.Automation) автоматизация пользовательского интерфейса находит элементы управления до тех пор, пока toolStripButton2 (т.е.) элементы управления в левой части поля со списком инструментов не будут распознаны, но в элементах управления с правой стороны. (Если я заставлю поле со списком идти правый самый пульт все работает нормально)
Примечание. В инструменте Inspect.exe из наборов Windows отображаются все элементы управления, но при попытке доступа к последнему инструментуStripButton3 возвращается значение null.
Здесь я прикрепил упрощенный код, ожидается, что buttonCollection получит 3 кнопки, но в моем случае это только две.
AutomationElement toolstrip = viewTab.FindFirst(TreeScope.Children,
new PropertyCondition(AutomationElement.AutomationIdProperty, "toolStrip1"));
AutomationElementCollection buttonCollection = toolstrip.FindAll(TreeScope.Children,
new PropertyCondition(AutomationElement.LocalizedControlTypeProperty, "button"));
И ToolStripTextBox, и ToolStripComboBox демонстрируют одинаковое поведение.
Я хотел бы знать, что происходит не так, как мой подход.