![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
senalex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 6.5.2008 Репутация: 1 Всего: 1 |
Всем, привет.
Нужно было реализовать свой тип ячейки для грида, все получилось не до конца. При редактировании ячейки все нормально, все редактируется, но при выходе из режима редоктирования ячейка теряет новые данные и возвращает значение, которым она была инициализированна. Шаблоном примера явился код календаря со страницы msdn. вот код, подскажите в чем проблема и что не так я сделал:
|
|||
|
||||
emmanuil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: 1 Всего: 3 |
EditingControlValueChanged всегда возвращает false.
|
|||
|
||||
senalex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 6.5.2008 Репутация: 1 Всего: 1 |
а как это исправить? |
|||
|
||||
emmanuil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: 1 Всего: 3 |
Так как у тебя MyEditingControl наследник TextBox, то переопредели метод OnTextChanged. Там мошешь следить за изменениями в тексте, присвой valueChanged = true.
|
|||
|
||||
senalex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 6.5.2008 Репутация: 1 Всего: 1 |
emmanuil, спасибо, все получилось.
Теперь возникла следующая проблема: Для своей новой колонки я определил свойство, при измеении его значения в proprtygrid'е и нажатии OK, изменения не фиксируются (т.е. значение свойства не изменяется), почему так происходит? |
|||
|
||||
emmanuil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: 1 Всего: 3 |
Создай новый топик.
![]() Т.е. любые другие свойства фиксируются а именно твое нет? Покажи код. |
|||
|
||||
senalex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 6.5.2008 Репутация: 1 Всего: 1 |
Да, именно так.
вот код, полная реализация моего столбца:
|
|||
|
||||
emmanuil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: 1 Всего: 3 |
Так какое свойство не сохраняется?
|
|||
|
||||
senalex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 6.5.2008 Репутация: 1 Всего: 1 |
Все те, которые мною определены:
namespace LovColumn { public class LovColumn : DataGridViewColumn { private int columnText; public int ColumnText { get { return columnText; } set { columnText = value; } } private int columnValue; public int ColumnValue { get { return columnValue; } set { columnValue = value; } } private int[] columnHide; public int[] ColunmHide { get { return columnHide; } set { columnHide = value; } } private string selectCommand; public string SelectCommand { get { return selectCommand; } set { selectCommand = value; } } private string connectionString; public string ConnectionString { get { return connectionString; } set { connectionString = value; } } ...... } |
|||
|
||||
emmanuil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: 1 Всего: 3 |
senalex, все фиксируется!
Может я просто не понял, что тебе именно нужно или ты не так объяснил? Что конкретно ты хочешь сделать? Как ты узнал, что свойства не фиксируются? |
|||
|
||||
senalex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 6.5.2008 Репутация: 1 Всего: 1 |
После радактирования, открываю файл хххх.Designer.cs и вижу это:
// // Column1 // this.Column1.ColumnText = 0; this.Column1.ColumnValue = 0; this.Column1.ColunmHide = null; this.Column1.ConnectionString = null; this.Column1.HeaderText = "Column1"; this.Column1.Name = "Column1"; this.Column1.SelectCommand = null; где Column1 объявлен как: private LovColumn.LovColumn Column1; и сколько бы я не редактировал свои свойства, все равно в файле дизайнера вижу это. а вот если редактировать например хедертекст или имя элемента, то изменения сохраняются ( и в файле дизайнера это видно). |
|||
|
||||
emmanuil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: 1 Всего: 3 |
При реализации наследников нужно переопределить метод Clone.
Например так:
|
|||
|
||||
senalex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 38 Регистрация: 6.5.2008 Репутация: 1 Всего: 1 |
emmanuil, спасибо, все получилось.
|
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Разработка Windows Forms | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |