Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при выборе элемента DataGridViewComboBoxCol 
:(
    Опции темы
EqKeeper
  Дата 21.7.2010, 05:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 13.2.2010

Репутация: нет
Всего: нет



Доброго времени суток!

Считываю данные из файлов. Для удобства редактирования, записываю их в 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;


Заранее спасибо! Очень надеюсь на вашу помощь!
PM MAIL   Вверх
fvoice
Дата 21.7.2010, 07:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 34
Регистрация: 28.4.2009

Репутация: нет
Всего: нет



Код

// Массив байт - исходные данные в том виде, в котором я получаю их из файла
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 = s;

PM MAIL   Вверх
EqKeeper
Дата 21.7.2010, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 13.2.2010

Репутация: нет
Всего: нет



fvoice
Все, спасибо, разобрался. Частично помогло. Отловил еще один баг - совсем помогло. smile

Это сообщение отредактировал(а) EqKeeper - 22.7.2010, 05:31
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0774 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.