У меня есть форма frmControlSystem , которая подключается к внешнему источнику данных, из которого я получаю строки, go в массив. Эта форма открывает другую форму frmResult_Vote для отображения этой информации. 2-й форме передается строковый массив в качестве параметра вместе с целым числом количества отображаемых элементов и одним другим параметром. Эта 2-ая форма правильно активирует .Visible для нужных текстовых полей. но только первый текстовый блок будет фактически отображать текст в нем; остальные пустые.
Первая форма использует этот код для отображения 2-й формы:
frmResult_Vote results = new frmResult_Vote(memberDisplayName, iMemberQty, ConstMembersPlusOne);
results.Show()
Вторая форма создает массив текстовых полей, поэтому я могу l oop и сделать видимым только те, которые я хочу использовать, а также заполнение атрибута .Text. Этот код:
public frmResult_Vote(string[] myVoteMembers, int iMemberQty, int ConstMembersPlusOne)
{
InitializeComponent();
textBox1.Text = "FU";
TextBox[] memberTextBoxes = new TextBox[ConstMembersPlusOne];
memberTextBoxes[1] = txtDisplayName1; memberTextBoxes[2] = txtDisplayName2; memberTextBoxes[3] = txtDisplayName3; memberTextBoxes[4] = txtDisplayName4;
memberTextBoxes[5] = txtDisplayName5; memberTextBoxes[6] = txtDisplayName6; memberTextBoxes[7] = txtDisplayName7; memberTextBoxes[8] = txtDisplayName8;
memberTextBoxes[9] = txtDisplayName9; memberTextBoxes[10] = txtDisplayName10; memberTextBoxes[11] = txtDisplayName11; memberTextBoxes[12] = txtDisplayName12;
for (int i = 1; i <= iMemberQty; i++)
{
memberTextBoxes[i].Text = myVoteMembers[i];
memberTextBoxes[i].Visible = true;
}
}
Когда отобразится 2-я форма, включится нужное количество текстовых блоков, но только первый отобразит текст.
Вторая форма содержит 12 текстовых блоков. с именем txtDisplayName1 через txtDisplayName12. Это то, что я использую для заполнения массива TextBox.
Последние странности (по крайней мере, для меня): каждый другой текстовый блок во второй форме был нарисован с другим BackColor. Это никогда не показывает, когда первая форма показывает () вторую форму; все они отображаются белым цветом.
Пытаясь получить что-то для отображения в других текстовых полях, я также пытался специально вызывать имена, не являющиеся массивами, например:
txtDisplayName1.Text = myVoteMembers[1];
Это вообще ничего не делало.
Я также поместил случайный текстовый блок во вторую форму и попытался заполнить его следующей строкой:
textBox1.Text = "FU";
, что textBox также не заполняется ... но если я закомментирую для l oop, это назначение textBox1.Text будет работать. Он также вызывается раньше всего.
Я проверил, что в массиве myVoteMembers есть строки, и когда я перебираю код, я вижу, что здесь происходит присвоение:
memberTextBoxes[i].Text = myVoteMembers[i];
Чего мне здесь не хватает?