Я пытаюсь заполнить DataGridViewComboBoxColumn списком строк, а затем выбрать одну из них на основе их значения при загрузке формы.
Казалось бы, простая задача, но я просто не могу понять ее правильно.
Я заполняю DataGridViewComboBoxColumn строками как таковыми без проблем:
ComboBoxColumn.Items.AddRange("Mr.", "Ms.", "Mrs.", "Dr.");
Я также, кажется, могу без проблем добавить его в DataGridView (это неверно, см. Изменить):
ExampleDataGrid.Rows.Add("", ComboBoxColumn, 1000, "");
Теперь я хочу установить "Mr." выбираться при загрузке. Другие сообщения предполагают, что я должен просто использовать:
ExampleDataGrid.Rows[i].Cells["ExampleColumnName"].Value = "Mr.";
Но всякий раз, когда я его использую, я получаю сообщение об ошибке, которое говорит мне, что значение недействительно. Есть что-то, что мне не хватает?
Однако я могу использовать это, чтобы получить заданное значение без проблем:
string Title = ExampleDataGrid.Rows[i].Cells["ExampleColumnName"].Value;
Я просмотрел документацию, но, похоже, в ней не упоминается, как на самом деле использовать .Value в этом контексте. Microsoft Docs
Любые мысли о том, где я ошибаюсь, были бы замечательными.
Изменить:
Проблема, с которой я столкнулся, была вызвана тем, что я установил ComboBoxItems в "ExampleDataGrid.Rows.Add()". Это должно фактически содержать значение, которое вы хотите установить. например
ExampleDataGrid.Rows.Add("", "Mr.", 1000, "");
Mr.
в элементах списка имеет.
в конце.Mr
не существует в элементах, поэтому установка его в качестве значения ячейки со списком вызовет исключение. - person Reza Aghaei   schedule 05.12.2018ExampleDataGrid.Rows[i].Cells["ExampleColumnName"]
- person Mong Zhu   schedule 06.12.2018