Я создаю текстовые поля динамически, по одному для каждого столбца в таблице (DataGridView). Каждый раз, когда я выбираю строку в таблице, текстовое поле должно иметь значение строки primaryKey. В первый раз это работает, но после этого текст TextBox не меняется. Но если я поставлю MessageBox для печати текстового поля, текст будет напечатан правильно, но не отобразится. Когда я попробовал то же самое с текстовыми полями, которые не создаются динамически, у меня не было этой проблемы.

for (int i = 0; i < columns_number; i++)
{

    textBoxes[i] = new TextBox();
    labels[i] = new Label();
    labels[i].Text = childTable.Columns[i].Name;

    labels[i].Location = new Point(x_point - 100, y_point);
    textBoxes[i].Location = new Point(x_point, y_point);

    this.Controls.Add(labels[i]);
    this.Controls.Add(textBoxes[i]);
    y_point = y_point + 30;
}

textBoxes[number].Text = selectedRow.Cells[vaterPrimaryKey].Value.ToString();

textBoxes[number].Refresh();
-1
Vladi 14 Апр 2018 в 15:32

1 ответ

Лучший ответ

Используйте приведенный ниже код, чтобы найти текстовые поля и использовать их так, как вы хотите:

 string textboxName = "textboxes" + number.ToString
 TextBox mytextbox = this.Controls.Find(textboxName, true).FirstOrDefault() as TextBox;
 mytextbox.Text = selectedRow.Cells[vaterPrimaryKey].Value.ToString();
0
Christopher H. 14 Апр 2018 в 13:13