列表控件和表单的名称

时间:2009-07-31 06:32:17

标签: winforms controls

我正在使用visual studio 2003和Windows平台,我想要一些工具,它给我控件名称和控件类型的列表,如按钮,文本框等..在窗体中 有没有办法通过工具或任何代码来做到这一点? 提前谢谢。

3 个答案:

答案 0 :(得分:2)

Visual Studio IDE中有 工具箱 ,可以为您提供详细信息。

答案 1 :(得分:1)

表单有Controls个集合。您可以从中获取表单中存在的控件数组。为了获得类型,您需要遍历集合并为每个元素获取GetType().FullName属性。

答案 2 :(得分:0)

您可以使用以下内容以编程方式执行此操作。此代码将逐步遍历表单上的每个容器,并使用递归显示每个控件的详细信息。它根据控件埋在容器内的深度(如面板等)缩进文本。

    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);
            }
        }
    }