У меня очень простой фрагмент кода, который выдает неожиданную ошибку, и я изо всех сил пытаюсь понять, что может быть не так.

private void dataNames_CellDoubleClick(object sender, DataGridViewCellEventArgs e) 
{   
    DataGridViewRow row = dataNames.CurrentCell.OwningRow;
    string val = row.Cells["Name"].Value.ToString();
    txtName.Text = val;
}

Объект dataNames - это DataGridView с единственным столбцом в нем с именем Names.

Когда я дважды щелкаю имя в таблице, я хочу, чтобы оно заполнило текстовое поле (txtName)

Я не понимаю, как текстовое поле может создавать «Объект не установлен». . 'ошибка, когда все, что я делаю, - это отправляю значение его свойству Text. Когда я просматриваю строку, val получает правильное значение из DataGridView.

0
PJW 2 Янв 2014 в 15:56
5
Ваш код предполагает, что столбец - это «Имя», но ваше описание предполагает, что это «Имена».
 – 
Claies
2 Янв 2014 в 15:58
Где именно находится текстовое поле "txtName"? Внутри сетки или вне сетки?
 – 
mit
2 Янв 2014 в 16:05

1 ответ

Лучший ответ

По иронии судьбы, потратив немало времени на то, чтобы найти проблему, я иду и замечаю ее сразу после публикации вопроса.

Ошибка возникает ранее в событии Form_Load, которое вызывает настраиваемый метод ClearForm, который очищает все текстовые поля в форме. Однако я сделал следующее:

txtTitle.Text = null;
txtAge.Text = null;
txtName = null;

Следовательно, я устанавливаю само текстовое поле = null, а не его свойство text.

Иногда простейшая опечатка приводит к самым загадочным ошибкам!

1
PJW 2 Янв 2014 в 16:03