Я хочу просмотреть все элементы управления в форме Windows и получить их имена.
Я сделал это легко с помощью рекурсии, но поскольку форма включает элементы управления DevExpress, возникает проблема.
Примером является элемент управления типа RibbonControl (элемент управления DevExpress) - проблема в том, что этот элемент управления НЕ имеет дочерних элементов. Я проверил RibbonControl и обнаружил, что у него есть свойство «Items», которое включает дочерние элементы для этого элемента управления DevExpress.
Итак, мой вопрос, есть ли способ перебрать дочерние элементы управления DevExpress, как этот?
Я пытался с Control.Items, но это не работает, если элемент управления не приведен к RibbonControl, и это не очень хороший подход, так как есть больше типов (которые я до сих пор не знаю), которые имеют «элементы» вместо "дети".
foreach (Control control in c.Controls)
{
if (control.GetType() == typeof(RibbonControl))
{
var ribbonCnt = (RibbonControl) control;
foreach (var cnt in ribbonCnt.Items)
{
}
}
}
Это способ, которым я в настоящее время получаю дочерние элементы (элементы) RibbonControl, но так как этот элемент управления может отличаться - это не кажется хорошим подходом.