Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
1

Нестандартная ячейка в DataGridView с редактированием - как возвратить данные?

13.10.2014, 18:48. Просмотров 469. Ответов 2
Метки нет (Все метки)

В MSDN есть пример создания ячейки для ввода даты через DateTimePicker (http://msdn.microsoft.com/en-us/library/7tas5c80.aspx)
В этом примере и аналогичных, чтобы использовать готовый функционал прорисовки, ячейка наследуется от DataGridViewTextBoxCell, у которой тип value - произвольный, а тип formattedvalue - string.
Передача текущего значения ячейки в EditingControl перед началом редактирования осуществляется в функции InitializeEditingControl.
Но не совсем понятно, как корректно реализовать возврат в ячейку отредактированного значения. В примерах всегда возвращают текстовое представление через EditingControlFormattedValue; и ячейка даже конвертирует его в простые типы (если value ячейки не string). Например, при возврате строки "1000", если value - int, он становится числом 1000.

А как реализовать возврат произвольного пользовательского класса (который не string) из EditingControl? Интерфейс IDataGridViewEditingControl предусматривает только EditingControlFormattedValue, просто Value там нет.
Вообще это так и задумано, возвращать string после редактирования и чтобы ячейка выполняла операцию обратную ToString()?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2014, 18:48
Ответы с готовыми решениями:

Ячейка datagridview как ссылка
Надо сделать действие указанное на рисунке. В столбце а datagridview забивается...

ComboBox ячейка в DataGridView как отловить событие?
Добрый день! Имеем dataGridView в нем есть столбец ячейкам которого присвоен...

DataGridView ячейка ComboBox, как организовать выбор по умочанию
Здрвствуйте. Есть тема на данном форуме, как в объекте DataGridView можно...

Как перенести все данные из DataGridVIew в другую DataGridView, которая находится во второй форме
Как перенести все данные из DataGridVIew в другую DataGridView, которая...

Ячейка в DataGridView
Добрый день! Подскажите как запретить ввод цифр и всяки знаков в ячейку...

2
ViterAlex
6459 / 3629 / 1484
Регистрация: 11.02.2013
Сообщений: 7,979
Завершенные тесты: 3
13.10.2014, 20:04 2
Цитата Сообщение от nmcf Посмотреть сообщение
ячейка даже конвертирует его в простые типы
Конвертирует не ячейка, а ты сам в свойстве EditingControlFormattedValue. Его тип object, а не string
0
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
13.10.2014, 21:07  [ТС] 3
Конвертирует именно ячейка. Посмотри пример MSDN: ValueType у ячейки объявлен как DateTime, а get возвращает строковое представление даты из EditingControl - функция ToShortDateString().
Да, тип EditingControlFormattedValue - object, но с принимающей стороны (DataGridViewTextBoxCell) FormattedValueType - типа string.
Если, например, попытаться через EditingControlFormattedValue вернуть число (int), то даже если в Value ячейки уже число и тип идентичный, возникает ошибка. А вот если вернуть это же число, но в строковом представлении, то ошибки нет. Ячейка преобразует строку в число и сохраняет в Value.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2014, 21:07

Мигающая ячейка datagridview
Добрый день. К примеру, есть две ячейки в datagridview. В первой значение...

Datagridview и высокая ячейка
Приветствую. Проблема заключается в следующем: Имеется datagridview на...

Ячейка типа Button в dataGridView
Суть проблемы такова. На форме имеется dataGridView, в котором 3 колонки:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru