Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Модальное окно Добавлено: 17.05.06 20:35  

Автор вопроса:  irkin | ICQ: 315324797 
Кто может помочь решить вроде несложную проблему - необходимо закрыть модальное окно по щелчку вне этой формы, пробовал и MouseDown, и SetCapture, и LostFocus - ничего не выходит.

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #1 Добавлено: 17.05.06 22:26
И не выйдет! на то оно и модальное..

Ответить

Номер ответа: 2
Автор ответа:
 irkin



ICQ: 315324797 

Вопросов: 1
Ответов: 6
 Профиль | | #2 Добавлено: 17.05.06 22:33
А как тогда работает datetimepicker, к примеру, у которого календарь, совершенно очевидно, в модальном окне.

Ответить

Номер ответа: 3
Автор ответа:
 ПтирЯ



Вопросов: 11
Ответов: 71
 Профиль | | #3 Добавлено: 18.05.06 09:29
а ты тщательно уверен, что оно модальное (у пикера-то)

Ответить

Номер ответа: 4
Автор ответа:
 irkin



ICQ: 315324797 

Вопросов: 1
Ответов: 6
 Профиль | | #4 Добавлено: 18.05.06 10:01
не на 100%. Но и мышь оно не захватывает. Если поставить такой эксперимент: бросить на форму пикер и лейбл, который подсвечивается при наведении мыши, то лейбл подсвечивается при открытом пикере. Так как примерно он клик отлавливает? Мне нужно заменить календарь в пикере на другой. Делаю примерно так. Комбобокс cmb на форме. В событии DropDown принудительно закрываю вываливающийся список с помощью
PostMessage(cmb.Handle.ToInt32, CB_SHOWDROPDOWN, 0, 0)
Вместо списка загружаю окно с календарем, соответственно отпозиционировав. Теперь проблема, как закрыть это окно по клику вне календаря?

Ответить

Номер ответа: 5
Автор ответа:
 ПтирЯ



Вопросов: 11
Ответов: 71
 Профиль | | #5 Добавлено: 18.05.06 11:22
А зачем тебе Combobox?
сделай себе UserControl с текстбоксом и кнопкой
и на событие UserControl.Leave закрывай окно календаря, если оно было открыто.
В принципе событие Leave есть и у комбобокса.

Ответить

Номер ответа: 6
Автор ответа:
 irkin



ICQ: 315324797 

Вопросов: 1
Ответов: 6
 Профиль | | #6 Добавлено: 18.05.06 12:49
Спасибо большое!!! Как-то упустил из виду Leave. В принципе я и сделал UserControl, а комбобокс - чтобы по виду было как можно ближе к поведению стандартного пикера, он по разному копку рисует в XP, и в 2000 из-за стиля.
С Leave все работает как надо, с небольшим багом, когда по комбобокс Leave закрываешь календарь, фокус возвращается обратно на комбобокс. Это само по себе плохо, пикер так себя не ведет, но и еще приводит к тому, что календарь повторно по кнопке не загружается. А если перевести фокус на другой контрол, то все работает нормально. Не посоветуете, как быть с этим?

Ответить

Номер ответа: 7
Автор ответа:
 irkin



ICQ: 315324797 

Вопросов: 1
Ответов: 6
 Профиль | | #7 Добавлено: 18.05.06 13:07
Видимо, действительно нужно текстбокс с кнопкой, там такая проблема легко решается, после закрытия календаря установил фокус на кнопку и текстбокс уже без фокуса, как в пикере. Еще раз спасибо большое!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам