Re: Как запретить передачу фокуса
От: orangy Россия
Дата: 29.07.04 13:57
Оценка: 13 (2)
Здравствуйте, Dog, Вы писали:

Dog>На форме есть юзерконтролы. В контроле 1 есть условие, при выполнении которого запрещаеся передача фокуса, т.е. фокус должен оставаться в контроле. Как сие осуществить ?


Использовать механизм Validation. Событие Validating и Validated.
... << RSDN@Home 1.1.4 beta 2 >>
"Develop with pleasure!"
Как запретить передачу фокуса
От: Dog  
Дата: 29.07.04 13:46
Оценка:
На форме есть юзерконтролы. В контроле 1 есть условие, при выполнении которого запрещаеся передача фокуса, т.е. фокус должен оставаться в контроле. Как сие осуществить ?
... << RSDN@Home 1.1.3 stable >>
Re[2]: Как запретить передачу фокуса
От: Dog  
Дата: 29.07.04 14:03
Оценка:
Dog>>На форме есть юзерконтролы. В контроле 1 есть условие, при выполнении которого запрещаеся передача фокуса, т.е. фокус должен оставаться в контроле. Как сие осуществить ?

O>Использовать механизм Validation. Событие Validating и Validated.

т.е. если я кликну на другом контроле и в первом не пройдёт валидация, то фокус не перейдёт ?
... << RSDN@Home 1.1.3 stable >>
Re[2]: Как запретить передачу фокуса
От: Dog  
Дата: 29.07.04 14:26
Оценка:
O>Использовать механизм Validation. Событие Validating и Validated.

Прошу прощение за несдержанность.
Спасибо, всё работает.
... << RSDN@Home 1.1.3 stable >>
Re[3]: Как запретить передачу фокуса
От: orangy Россия
Дата: 29.07.04 14:28
Оценка:
Здравствуйте, Dog, Вы писали:

Dog>>>На форме есть юзерконтролы. В контроле 1 есть условие, при выполнении которого запрещаеся передача фокуса, т.е. фокус должен оставаться в контроле. Как сие осуществить ?


O>>Использовать механизм Validation. Событие Validating и Validated.

Dog>т.е. если я кликну на другом контроле и в первом не пройдёт валидация, то фокус не перейдёт ?
фокус не перейдёт, модальный диалог не закроется и все в том же духе.
... << RSDN@Home 1.1.4 beta 2 >>
"Develop with pleasure!"
Re[4]: Как запретить передачу фокуса
От: Dog  
Дата: 29.07.04 16:03
Оценка:
O>>>Использовать механизм Validation. Событие Validating и Validated.
Dog>>т.е. если я кликну на другом контроле и в первом не пройдёт валидация, то фокус не перейдёт ?
O>фокус не перейдёт, модальный диалог не закроется и все в том же духе.

Еще У меня формы переоределено onClosing. Я кликаю на кнопку Х (закрыть форму). Так даже если я делаю Cancel, onClosing всё равно вызывается
... << RSDN@Home 1.1.3 stable >>
Re[5]: Как запретить передачу фокуса
От: orangy Россия
Дата: 29.07.04 16:21
Оценка:
Здравствуйте, Dog, Вы писали:

O>>>>Использовать механизм Validation. Событие Validating и Validated.

Dog>>>т.е. если я кликну на другом контроле и в первом не пройдёт валидация, то фокус не перейдёт ?
O>>фокус не перейдёт, модальный диалог не закроется и все в том же духе.

Dog>Еще У меня формы переоределено onClosing. Я кликаю на кнопку Х (закрыть форму). Так даже если я делаю Cancel, onClosing всё равно вызывается


Не понял. OnClosing вызвается при попытке закрыть. Если ты у CancelEventArgs выставляешь Cancel = true, то форма не закрывается. Иначе вызвается OnClose и форма закрывается.
... << RSDN@Home 1.1.4 beta 2 >>
"Develop with pleasure!"
Re[6]: Как запретить передачу фокуса
От: Dog  
Дата: 30.07.04 08:28
Оценка:
Dog>>Еще У меня формы переоределено onClosing. Я кликаю на кнопку Х (закрыть форму). Так даже если я делаю Cancel, onClosing всё равно вызывается

O>Не понял. OnClosing вызвается при попытке закрыть. Если ты у CancelEventArgs выставляешь Cancel = true, то форма не закрывается. Иначе вызвается OnClose и форма закрывается.


Вот только у своего контрола при валидации я тоже сделал Cancel = true и OnClosing об этом ничего не знает.
... << RSDN@Home 1.1.3 stable >>
Re[7]: Как запретить передачу фокуса
От: orangy Россия
Дата: 30.07.04 08:33
Оценка:
Здравствуйте, Dog, Вы писали:

Dog>>>Еще У меня формы переоределено onClosing. Я кликаю на кнопку Х (закрыть форму). Так даже если я делаю Cancel, onClosing всё равно вызывается


O>>Не понял. OnClosing вызвается при попытке закрыть. Если ты у CancelEventArgs выставляешь Cancel = true, то форма не закрывается. Иначе вызвается OnClose и форма закрывается.


Dog>Вот только у своего контрола при валидации я тоже сделал Cancel = true и OnClosing об этом ничего не знает.

Вот тут не знаю точно, возможно сначала вызывается OnClosing у формы, и если она разрешила, то проверяется валидация. Изучай
... << RSDN@Home 1.1.4 beta 2 >>
"Develop with pleasure!"
Re[8]: Как запретить передачу фокуса
От: Dog  
Дата: 30.07.04 09:09
Оценка:
Dog>>Вот только у своего контрола при валидации я тоже сделал Cancel = true и OnClosing об этом ничего не знает.
O>Вот тут не знаю точно, возможно сначала вызывается OnClosing у формы, и если она разрешила, то проверяется валидация.
Наоборот По идее форме должно быть всё равно какие у неё контролы. И при такой ситуации в onClosing может сохранится невалидный документ. Что и происходит у меня. Решение я нашел, но оно мне показалось не совсем красивым, вот и подумываю, в свободное время, можно ли сделать по другому.

O>Изучай

Грызу
... << RSDN@Home 1.1.3 stable >>
Re[7]: Как запретить передачу фокуса
От: Аноним  
Дата: 30.07.04 21:03
Оценка:
Здравствуйте, Dog, Вы писали:

Dog>>>Еще У меня формы переоределено onClosing. Я кликаю на кнопку Х (закрыть форму). Так даже если я делаю Cancel, onClosing всё равно вызывается


O>>Не понял. OnClosing вызвается при попытке закрыть. Если ты у CancelEventArgs выставляешь Cancel = true, то форма не закрывается. Иначе вызвается OnClose и форма закрывается.


Dog>Вот только у своего контрола при валидации я тоже сделал Cancel = true и OnClosing об этом ничего не знает.


посмотри здесь похожую тему.
Re[9]: Как запретить передачу фокуса
От: xWizard Украина  
Дата: 24.11.05 12:43
Оценка:
Dog>Наоборот По идее форме должно быть всё равно какие у неё контролы. И при такой ситуации в onClosing может сохранится невалидный документ. Что и происходит у меня. Решение я нашел, но оно мне показалось не совсем красивым, вот и подумываю, в свободное время, можно ли сделать по другому.

Возможно, твой форма не содержит контрол непосредственно, а содержит его контейнер( DockableWindow например). В этом случае, на закрытие формы не повлияет e.Cancel=true в контроле. Нужно писать e.Cancel=true в DockableWindow, чтобы запретить закрытие формы.
Re[10]: Как запретить передачу фокуса
От: Dog  
Дата: 24.11.05 13:53
Оценка:
Dog>>Наоборот По идее форме должно быть всё равно какие у неё контролы. И при такой ситуации в onClosing может сохранится невалидный документ. Что и происходит у меня. Решение я нашел, но оно мне показалось не совсем красивым, вот и подумываю, в свободное время, можно ли сделать по другому.
W>Возможно, твой форма не содержит контрол непосредственно, а содержит его контейнер( DockableWindow например). В этом случае, на закрытие формы не повлияет e.Cancel=true в контроле. Нужно писать e.Cancel=true в DockableWindow, чтобы запретить закрытие формы.
Чесно говоря уже и не помню в чём была проблема, но возможно так оно и было
...где-то между собакой и богом...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.