2012-04-25 10 views
0

カスタムコントロール内のテキストボックスからテキストを取得する必要があります。カスタムコントロールは、ArrayListの一部であるため、フォームに複数のカスタムコントロールを表示することができます。 ArrayList内のコントロールの1つのテキストボックスからテキストにアクセスするにはどうすればよいですか?動的カスタムコントロールから値を取得しようとしています

次のコードは、私は、ダイナミックカスタムコントロールを作成しています方法を示しています。ここでは

ArrayList assessmentInfo = new ArrayList(); 

    int length = (int)moduleInfoLevel6.numericUpDownModuleAssessmentNum.Value; 
    for (int i = 0; i < length; i++) 
    { 
     assessmentInfo.Add(new AssessmentInfo()); 
     System.Drawing.Point p = new System.Drawing.Point(10, 160 + i * 32); 
     (assessmentInfo[i] as AssessmentInfo).Location = p; 
     (assessmentInfo[i] as AssessmentInfo).Size = new System.Drawing.Size(440, 32);     
     tabPageLevel6.Controls.Add((assessmentInfo[i] as AssessmentInfo)); 
    } 

は、カスタムコントロールの表示方法を示すスクリーンショット:カスタムコントロールassessmentInfo

http://i.imgur.com/9qwCL.jpg

カスタムコントロールをフォームに表示する方法

http://i.imgur.com/DFJYV.jpg

+0

以下の方法でそれをアクセスすることができ、その後

(assessmentInfo[i] as AssessmentInfo).Name = "assessmentInfo" + i.ToString(); 

同じ状況。私が取っていたアプローチは、カスタムコントロールでクラス要素をバインドし、インスタンスを作成しながらそれを行うことができます。バインディングが完了すると、気になるのはデータ構造だけです。 – mchicago

答えて

0

あなたは、各コントロールに名前を追加することができ

何かのように:あなたは、私がでてきた

foreach (object control in tabPageLevel6.Controls) 
{ 
    if (control is AssessmentInfo) 
    { 
     if ((control as AssessmentInfo).Name == "assessmentInfo1") 
      // do something with the control 
      MessageBox.Show((control as AssessmentInfo).Name);      
    } 
} 
+0

このソリューションは完璧に動作してくれてありがとうございます:) – Plummy194

+0

問題はありません – fuchs777

関連する問題