2010-09-09 3 views
0

Предположим, у меня есть 7 групповых боксов, но некоторые из них также имеют групповой ящик внутри них, а некоторые нет. теперь, если я хочу перебрать эти 7 групповых полей и применить к ним что-нибудь, есть ли способ, чтобы я мог исключить те группы дочерних групп из этого цикла?Исключая групповые ящики, которые находятся внутри другого GroupBox

ответ

1

хотя я сомневаюсь в выборе реализации (вы можете использовать полиморфизм вместо того, что именно вы пытаетесь сделать?), Существует свойство родителя, например.

void soSomething(Control ctrl) 
{ 
    if (ctrl is GroupBox && (ctrl.Parent is null || !(ctrl.Parent is GroupBox))) 
    { 
     //do something here 
    } 
    foreach(Control child in ctrl.Controls) 
    { 
     doSomething(child); 
    } 
} 
1

Отметьте их тегом свойств или что-то еще.

+0

спасибо, поэтому нет такой вещи, как «родительский» или такой объект, который я могу проверить на каждом из них? правильно? – Bohn

+0

не то, что я знаю, но это может быть связано с свойством контейнера или hwnd – Beth