| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > изменение порядка вызовов событий |
| Автор: vasjon 9.10.2007, 13:09 |
| возможен ли сабж ? для чего это мне нужно: есть нестандартный грид, у него есть 2 события: FocusedRowChanged, FocusedColumnChanged. При смене фокуса может быть 3 варианта: 1) FocusedRowChanged, FocusedColumnChanged 2) FocusedRowChanged 3) FocusedColumnChanged мне надо узнать на какой ячейке сейчас фокус и вызвать метод, для этого надо какое-нибудь событие после отработки этих событий... идеально подошел бы MouseDown, но он выполняется перед этими событиями :( соотвественно вопрос: можно ли измененить порядк вызовов событий ? или может есть более простой способ ? |
| Автор: mr.DUDA 9.10.2007, 13:11 |
| Обычно вместе с событием есть виртуальный метод с именем OnИмяСобытия, который можно перекрыть и добавить свои действия до (или после) вызова base.OnИмяСобытия. В base происходит генерация ИмяСобытия. |
| Автор: vasjon 9.10.2007, 13:47 |
| OnFocusedRowChanged, OnFocusedColumnChanged - нету, а OnMouseDown есть, но от него мало толку, хотя тут вопрос откуда взять параметры (System.Windows.Forms.MouseEventArgs)для этого метода ? |
| Автор: 1stain 9.10.2007, 15:10 | ||
только не лучше ли в этом случае использовать событие CellEnter ? Хотя бы потому, что фокус может менятся с клавиатуры... |
| Автор: vasjon 9.10.2007, 15:40 |
| было бы событие CellEnter проблем не было бы... моих знаний Ваш код применить не хватает. |
| Автор: mr.DUDA 9.10.2007, 16:31 |
| Как костыльный вариант - создать таймер с частотой 100мс и int переменную-счётчик, и при генерации любого из событий FocusedXXXChanged сбрасывать счётчик в 0. В обработчике Timer.Elapsed увеличивать счётчик на 1 и проверять, к примеру, если он равен 5 значит прошло полсекунды с последнего события (и больше не поступало), значит можно выполнить нашу проверку выбранной ячейки и т.п. действия. События FocusedXXXChanged будут генерироваться генерироваться в любом случае быстрее, чем за полсекунды, поэтому будет некая гарантия что ячейка выбрана окончательно. |
| Автор: vasjon 10.10.2007, 09:59 |
| имено этот вариант и использовал |