В WinForms это очень просто ... просто захватите контейнер WinForms, а затем проверьте свойство '.Controls' и выполните итерацию по коллекции возвращенных элементов управления.
foreach (System.Windows.Forms.Control ctrl in form.Controls)
{
if (ctrl.Name == "tabPageControl")
{ // do something with 'tabPageControl object' }
{
Как вы видите в WinForms, его очень легко получить доступ к глобальному контейнеру, чтобы вернуть 'ControlCollection', а затем перебрать или даже глубже, если это панель или что-то в этом роде. Как только вы нашли то, что хотите, просто создайте список того, что можно найти, и сделайте что-нибудь со своим списком или под вашим контролем.
В WPF , это сделано немного иначе. У меня нет большого опыта работы с WPF, но после 15 минут игры я придумал:
private void button1_Click(object sender, RoutedEventArgs e)
{
// cast out Grid object.
Grid grd = (Grid) this.Content;
// do simple testing to find out what the type is.
string s = grd.ToString();
// in VS, in debug mode, hover 'grd.Children' and Smart Tool Tip that pops
// it will tell exactly under a 'count' property how many controls there are sitting
// on the global container. For me it was just 1, my Button.
foreach (UIElement child in grd.Children)
{
// do some more testing to make sure have got the right control. pref in an If statement but anyhooo.
String sss = child.GetType().FullName;
// cast out the appropriate type.
Button myWpfButton = (Button)child;
}
}
Надеюсь, этого хватит, чтобы вы начали.