试图从动态自定义控件中检索值

时间:2012-04-25 15:56:43

标签: c# xml winforms custom-controls dynamic-controls

我需要从自定义控件中的文本框中检索文本。自定义控件是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));
    }

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

assessmentInfo自定义控件

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

自定义控件如何在表单上显示

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

1 个答案:

答案 0 :(得分: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);                    
    }
}