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

4

1 に答える 1

0

各コントロールに名前を追加できます

何かのようなもの:

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

次に、次の方法でアクセスできます

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);                    
    }
}
于 2012-04-25T16:11:39.637 に答える