2010-11-22 3 views
1

私はこのような状況に陥っていますが、私は10〜15ルーブルとコンボボックスがすべて見えません。今は実行時に私はこれらのうちどれだけ多くをアクティブにするかを渡していますか?それらの名前のプロパティは、lable1からlable16、combobox1からcombobox16までです。私はコントロールを見つけることができるかどうかをテストするためにのみ、次のコードを使用していますが、それはすべての、ホと、これらのコントロールとコンボボックスがpannel上にあったことで失敗するようです。winformで非表示のコントロールを見つけ、実行時に表示させますか?

次は私が使用するコードです:

foreach (Control ctrl in this.Controls) 
      { 
       if (ctrl is Label) 
       { 
        MessageBox.Show(((Label)ctrl).Text); 
       } 
      } 
+0

、再帰的にこのメソッドを呼び出します。 –

答えて

1

あなたが実際にソートのあなたはthis.Control秒でコントロールを見つけることが、Panel1.Controlsはありません、あなた自身の質問... に答えています:)

2

あなたはthis.Panel1.Controlsか、これまでにどのようなあなたのパネルのコントロール名があるとthis.Controlsを交換する必要があります。

また、mayneは制御名を使用するためにControl.ControlCollection.Find Methodを参照してください。

2

これは再帰的に行う必要があります。

ctrl自体もControlsです。ツリー全体を歩いているだけで、最終的にすべてのコントロールが見つかります。

0

あなたは現在のコントロール(CTRL)は内のコントロールを持っているかどうかを確認することができますそれらをループするため

例えば:あなた `else`で

if (ctrl.Controls.Count >0) 
{ 
//do your logic here 
} 
関連する問題