|
|
|
| Есть контрол и кнопка в форме. Кнопка.Visible = False. При получении фокуса в контрол - Кнопка.Visible = True. При потере фокуса - Кнопка.Visible = False.
Вопрос - А как быть, если фокус передается не какому-то другому контролу, а Кнопке, ведь тогда по событию LostFocus произойдет попытка сделать кнопку невидимой, что приведет к ошибке. | |
|
| |
|
|
|
| Событие LostFocus происходит ДО фактического перемещения фокуса. Если имеется ввиду перемещение фокуса в порядке перехода по Tab, то ошибки не произойдет, фокус получит следующий элемент.
ЗЫ. А проверить было слабо?! | |
|
| |
|
|
|
| Наверно я слишком сумбурно описал задачу. Дело вовсе не в ошибке, возникновение которой вполне закономерно, а в том, что при получении фокуса Кнопкой возникает событие LostFocus в контроле, по которому значению свойства Кнопка.Visible присваевается значение True. вернее сказать происходит попытка выполнить это действие, что приводит естественно к ошибке, т.к. нельзя изменить данное свойство, если элемент формы находится в фокусе. Проблема заключается в том, что при потере фокуса контролом, я не могу отследить какому элементу формы передается управление, и соответсвенно если управление получает Кнопка, то не надо ее делать невидмой, а если управление получает какой-то другой контрол, то Кнопка.Visible = True | |
|
| |
|
|
|
| смотреть
Screen.ActiveControl
Screen.PreviousControl | |
|
| |
|
|
|
| если кнопка невидима то почему бы не передать фокус нужному контролу принудительно, а если видима то кнопке
например
обрабатывая события формы Текущая запись - проверяем если в поле есть условие то отображаем или скрываем кнопку
событие поля После обновления - в зависимости от данных поля скрываем или отображаем кнопку
событие поля потеря фокуса - проверяем состояние кнопки и передаем фокус либо кнопке либо другому контролу | |
|
| |
|
|
|
| To Snipe:
Еще раз - есть контрол в который нужно ввести дату, рядом с контрол рисуем кнопку и делаем ее невидимой. Дальше - когда контрол получает управление - делаем кнопку видимой, когда теряет упрвление - наоборот. предположим, что по нажатию на кнопку открывается календарь, мы выбираем дату и засовывае ее в контрол. Все заеб... т.е. я хотел сказать велеколепно. Но как быть когда управление от контрола переходит к Кнопке, ведь в этом случае возникает событие LostFocus и происходит попытка сделать нашу Кнопку невидимой, а она с минуты на минуту, а может даже и быстрее получит управления. О последствиях Даже думать страшно.....
А Текущая запись, значения контрола здесь вообще не при чем. | |
|
| |
|
|
|
| To Анатолий (Киев):
Проверил - действительно ошибка не возникает, а происходит передача управления следующему по Tab контролу. Но в моем случае это ситуацию не меняет. | |
|
| |
|
21 Кб. |
|
|
Но как быть когда управление от контрола переходит к Кнопке, ведь в этом случае возникает событие LostFocus
|
не надо использовать LostFocus - это незачем ИМХО | |
|
| |
|
|
|
|
...
Me.Command10.Visible = Me.ActiveControl.Tag
Me.Command10.TabIndex = Me.ActiveControl.TabIndex + 1
...
|
Хитро. | |
|
| |
|
|
|
| вызов календарей и калькуляторов вешай на двойной клик по полю. и все.
зы. и всплывающую подсказочку "Двойной клик вызовет календарь" | |
|
| |
|
|
|
| не - ну так совсем безпонтово | |
|
| |
|
|
|
| Вот небольшой примерчик => http://zalil.ru/29669751 | |
|
| |
|
|
|
| Ну в твоем примере еще работать и работать. Календарь неудачный. | |
|
| |
|
10 Кб. |
|
| Ну как-то.... так. Едем в Москву через Хабаровск. | |
|
| |
|
|
|
| Извини, твой пример не смотрел. | |
|
| |
|
|
|
|
dmsrv803
не - ну так совсем безпонтово
|
+1.
По кнопке нагляднее.
Переход по Tab=Нет (для кнопки.) | |
|
| |
|
|
|
|
+1.
По кнопке нагляднее.
Переход по Tab=Нет (для кнопки.)
|
А что это дает? Можно пояснить мысль. | |
|
| |
|
|
|
| Да мало чего дает.
Придумал:
Нужно сделать маленькую форму без рамки с одной кнопочкой (всплывающую).
При получении полем фокуса ее показывать, при потере -скрывать.
Тут только придется позиционировать ее (формочку) с динамической привязкой к активному полю.
Жееесть. | |
|
| |
|
|
|
| Согласен что это будет работать и что это - жесть. | |
|
| |
|
|
|
| Есть исчо вариант:
Image или Label вместо кнопки. | |
|
| |
|
|
|
| Ну это мне определенно больше нравиться | |
|
| |