![]() |
Модераторы: gambit, Partizan |
![]() ![]() ![]() |
|
kulibin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
передрал стандартный пример CalendarColumn. Там, где значение не допускает dbnull всё ок. А вот есть у меня столбцы где допускается нул. Сделал чтобы чекбокс отображался в дейттаймпикере. Но при снятии чекбокса всёравно в ячейку пишется значение из дейттаймпикера. И ещё чекед чёто не пойму как привязать к конкретной ячейке. Делаю так:
а значения null ctl.Value присвоить нельзя - т.к. нету такого в DateTime. А без этого никак. Подскажите плз как уговорить его чтобы при снятии галки с чекбокса в текущую ячейку дата не писалась - чтобы её значение стало dbnull.value. И наоборот - если в ячейке dbnull.value чтобы дтпикер отображался со снятым чекбоксом. |
|||
|
||||
kulibin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
а чё такая тишина?
![]() ну меня вроде осенило самого - токо никак не найду времени опробовать. надо наверное сделать класс-потомок от дейттаймпикера - и переписать в нём свойство value - так, чтобы если присваивается значение dbnull.value устанавливалось cheked=false и наоборот - чтобы если чекед=false - то get{return dbnull.value;} токо тут одно слабое место есть ![]() ![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 24 Всего: 232 |
kulibin, DBNull присваивается не свойству контрола, а ячейке датасета (или на что он там bind-ится).
-------------------- ![]() |
|||
|
||||
kulibin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
в принципе так то оно так. ну допустим, что присваивать дейттаймпикеру cheked=false можно в InitializeEditingControl. А вот обратно как - т.е. из дейттаймпикера в ячейку гридвью. Т.е. надо куда-то вставить такую строку: if(this.value==dbnull.value){ctl.cheked=false;}else{this.value=ctl.value;}. Токо куда ето вставить шото я не врубаюсь
![]() |
|||
|
||||
kulibin |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
что-то никак я не домучаю этот календарколумн.
вот сделал так:
токо как-то получается, что моё свойство вот это:
я его устанавливаю в true - а потом ставлю брейкпойнт на InitializeEditingControl - и наблюдаю там почемуто false ![]() Помогите плз ![]() ![]() ![]() вот весь код календарколумна этого:
Добавлено @ 18:44 вот ещё странность одна. почемуто на ней мой календарколумн виден как datagridviewcolumn - тогда как остальное всё нормально: textboxcolumn, comboboxcolumn. Да - и свойство нулбл сразу после присваивания тоже наблюдается как true. т.е. я ещё вроде не полный идиот. хотя уже сомневаюсь ![]() ПОМОГИИИТЕЕЕЕ ! ! ! уже блин мозги из ушей брызжут - а никак не пойму в чём тут прикол ![]() |
||||||
|
|||||||
kulibin |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
забыл пикчерс. вот он:
![]() |
|||
|
||||
-ser- |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 4 Всего: 13 |
вот тут ты асс. я даже не представляю как это. да и стоит ли смешивать одно с другим. перевожу для себя вопрос: как связать чекбокс с ячейкой. ответ: выдели отдельную колонку в датагриде под чекбокс и повесь на DataBindingComplete следующий код:
и, соответственно, на CellValueChanged:
и еще на CurrentCellDirtyStateChanged:
-------------------- "Тонкая, однако, работа." |
||||||
|
|||||||
kulibin |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
на самом деле всё гораздо проще - в стандартном дейттаймпикере есть свойства showcheckbox и checked ![]() ![]() Теперь отчёт о проделаной работе ![]() ![]() ![]() Вот код. Не думаю что кто-то разберётся в нём раньше меня - но если вдруг так случится - то буду очень рад ![]()
Добавлено @ 10:11 вот ключевой момент:
и вот:
Я по последнему куску этому никак не пойму момента одного: set вообще не работает никогда - на нём точка останова стоит хронически и не разу не сработала. Странно как-то. А get активно используется - и вроде честно работает. |
||||||
|
|||||||
-ser- |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 4 Всего: 13 |
он не работает по той простой причине, что ты никогда не присваиваешь значение переменной через проперти, т.е.
а скорей всего делаешь это напрямую ( я не смотрел твой код ). это не ошибка, но разберись что тебе надо, и либо присваивай через проперти, либо выбрось вообще set из него, оставь его read-only. -------------------- "Тонкая, однако, работа." |
|||
|
||||
kulibin |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: нет Всего: 3 |
Фишка этого свойства в том, что оно не для меня - а для гридвью ![]()
-ser-, очень ценю твоё желание помочь, правда. Но пытаться это сделать вообще не читая моего текста бесполезно ![]() Я ведь собственно что пытаюсь сделать: не просто разово для одного датагридвью на одной форме эту функциональность прикрутить. Я делаю разновидность datagridviewcolumn - для многоразового использования. Вот так:
Ну и на сегодняшний день всё работает - токо при снятии галочки в 1 из 3-х случаев не убирается дата из ячейки ![]() |
||||||
|
|||||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [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. |