/ / Pokus o získanie hodnoty z dynamického vlastného ovládacieho prvku - c #, xml, winforms, vlastné ovládacie prvky, dynamické ovládacie prvky

Pokus o získanie hodnoty z dynamického vlastného ovládacieho prvku - c #, xml, winforms, vlastné ovládacie prvky, dynamické ovládacie prvky

Potrebujem načítať text z textového poľavlastné ovládanie. Vlastné ovládanie je súčasťou súboru ArrayList, takže na formulári môže byť zobrazených viacero vlastných ovládacích prvkov. Ako môžem pristupovať k textu z jedného textového poľa v rámci jedného z ovládacích prvkov v poli ArrayList?

Nižšie uvedený kód zobrazuje, ako vytvorím dynamické vlastné ovládanie:

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

Tu sú snímky obrazovky, ktoré ukazujú, ako sa zobrazuje vlastné ovládanie:

customInfo kontroly

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

Ako sa na formulári zobrazí vlastné ovládanie

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

odpovede:

0 pre odpoveď č. 1

môžete každému ovládaciemu prvku pridať názov

niečo ako:

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

potom ste k nemu mohli pristupovať nasledujúcim spôsobom

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