Имя списка элементов управления и форма - PullRequest
0 голосов
/ 31 июля 2009

Я использую Visual Studio 2003 и платформу Windows, и мне нужен какой-то инструмент, который дает мне список названий элементов управления и тип элемента управления, например кнопку, текстовое поле и т. Д. В форме Есть ли способ сделать это с помощью инструмента или с помощью любого кода? заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 31 июля 2009

В Visual Studio IDE есть набор инструментов , который предоставит вам подробную информацию.

1 голос
/ 31 июля 2009

Для формы существует коллекция Controls. Из этого вы можете получить массив элементов управления, представленных в форме. Чтобы получить тип, вам нужно будет пройтись по коллекции и получить свойство GetType().FullName для каждого элемента.

0 голосов
/ 24 ноября 2012

Вы можете сделать это программно с помощью чего-то вроде следующего. Этот код будет проходить через каждый контейнер в форме и отображать детали для каждого элемента управления с помощью рекурсии. Он выравнивает текст в соответствии с тем, на сколько уровней элемент управления скрыт внутри контейнеров (например, панелей и т. Д.).

    private void PrintControls()
    {
        // Print form coords
        Debug.Print("\n" + this.Name + ": "
            + "\n\tLocation=" + this.Location.ToString()
            + "\n\tSize=" + this.Size.ToString()
            + "\n\tBottom=" + this.Bottom.ToString() 
            + " Right=" + this.Right.ToString()
            + "\n\tMinimumSize=" + this.MinimumSize.ToString() 
            + " MaximumSize=" + this.MaximumSize.ToString());

        // Print coords for controls and containers
        foreach (Control C in this.Controls)
        {
            RecurseThroughControls(C, 1);
        }
    }

    private void RecurseThroughControls(Control C, int Tabs)
    {
        string Indent = "";
        for (int t = 0; t < Tabs; t++)
        {
            Indent += "\t";
        }

        Debug.Print(Indent + "Name=" + C.Name + " Type=" + C.ToString()
            + "\n" + Indent + "\tLocation=" + C.Location.ToString()
            + "\n" + Indent + "\tSize=" + C.Size.ToString()
            + "\n" + Indent + "\tBottom=" + C.Bottom.ToString() 
            + " Right=" + C.Right.ToString());
        if (C.HasChildren)
        {
            foreach (Control Child in C.Controls)
            {
                RecurseThroughControls(Child, Tabs + 1);
            }
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...