Доброго времени суток!
Считываю данные из файлов. Для удобства редактирования, записываю их в DataGridView. После редактирования - записываю обратно в файлы. Все было просто, пока я не решил заменить TextBox'ы на ComboBox'ы. Добавил в DataGridViewComboBoxColumn вытащенную из файла строку, выбрал ее (программно или ручками - не важно). Получил такую вот ошибку:
Цитата | Исключение в DataGridView: System.ArgumentException: Недопустимое значение DataGridViewComboBoxCell. |
При этом выбранная строка в ячейке винда, но любой действие с формой тут же вызывает целый поток таких же ошибок.
Начал экспериментировать. Заменил полученную из файла строку на обычную "A". Все прошло тихо и без ошибок. Пришел к выводу, что проблема заключается в том, какую строку я пытаюсь ему подсунуть. Из файла я ее считываю, как массив байт. Потом энкодингом получаю строчку. И уже ее пытаюсь записать в список бокса. Тем не менее, из-за чего ошибка - не пойму. Вернее, не пойму как ее исправить и что я делаю не так. Вот пример кода с исходными данными, который выдаст ошибку:
Код | // Массив байт - исходные данные в том виде, в котором я получаю их из файла byte[] bb = new byte[8]; bb[0] = (byte)50; bb[1] = (byte)48; bb[2] = (byte)49; bb[3] = (byte)48; bb[4] = (byte)48; bb[5] = (byte)49; bb[6] = (byte)49; bb[7] = (byte)51;
// Превращение массива байт в строку string s = Encoding.UTF8.GetString(bb);
// Добавляем строку в список значений комбобокса 2ой колонки таблицы DataGridView int index = ((DataGridViewComboBoxColumn)dataGridView1.Columns[2]).Items.Add(s);
// Присваиваем ячейке полученный при добавлении индекс (ни на что не влияет - если выбрать ручками, тоже выдает ошибку) dataGridView1[2, 1].Value = index; |
Заранее спасибо! Очень надеюсь на вашу помощь! |