2009-07-31 6 views
0

私はVisual Studio 2003とWindowsプラットフォームを使用しています。ボタンやテキストボックスなどのコントロール名とコントロールタイプのリストを与えるツールがほしいです。 ツールやコードでこれを行いますか?ありがとうございます。 コントロールとフォームの名前リスト

答えて

2

ツールボックスがありますので、詳細をお知らせします。

+0

私はOPの名前をプログラマチックにリストしたいと思っています。 – adatapost

+0

ツールボックスはどこにありますか? – KuldipMCA

1

フォームのControlsコレクションがあります。フォームの中にあるコントロールの配列を取得することができます。型を取得するには、コレクションをループし、各要素のプロパティをGetType().FullNameにする必要があります。

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); 
      } 
     } 
    } 
関連する問題