0

我需要从自定义控件中的文本框中检索文本。自定义控件是 ArrayList 的一部分,因此可以在表单上显示多个自定义控件。如何从 ArrayList 中的一个控件中的单个文本框访问文本?

下面的代码显示了我如何创建动态自定义控件:

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

以下是显示自定义控件如何显示的屏幕截图:

评估信息自定义控件

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 回答