public virtual Control FindControlByName(string name)
{
[...]
if (control is ToolStrip)
{
var toolStrip = control as ToolStrip;
for (int i=0; i<toolStrip.Items.Count; i++)
{
ToolStripItem currrentItem = toolStrip.Items[i];
ToolStripTextBox textBox = currrentItem as ToolStripTextBox;
if (textBox != null)
{
if (textBox.Name == name)
{
return textBox.Control;
}
}
}
}
}
return null;
}
2条答案
按热度按时间hzbexzde1#
ToolStripTextBox的问题已经解决:
igetnqfo2#
如果你自己做一些桌面应用程序自动化(因为UIautomation设计得非常糟糕),你可以设计一个返回Control类的方法:
如果你可以和TargetApp的开发者交谈,请他通过ToolStripTextBox更改ToolStripLabel。您将从ToolStripControlHost中受益:https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.toolstripcontrolhost?view=windowsdesktop-7.0
它也是一个ToolStripItem,但它公开了“自动化关键元素”:控件属性。
只需将ToolStripTextBox设置为只读,无边框,并设置宽度,就可以了!