07.08.2024, 15:02 | #1 |
Участник
|
Как получить класс-обработчик формы в eventHandler?
Написан кастомный eventHandler для onClicked кнопки формы
Объявление, соответственно X++: public static void SomeCustomBtn_OnClicked(FormControl sender FormControlEventArgs e) Как его получить? Как-то через sender, наверное, но не нахожу примеров. Везде только sender.formRun() |
|
07.08.2024, 15:35 | #2 |
Участник
|
Вопрос снят. Через formRun.parmMyLocVar() все получилось
|
|
07.08.2024, 16:19 | #3 |
Участник
|
Зачем нужны такие "макароны"? Есть обработчик событий - его развивайте, очевидно, что у него не хватает на момент конструирования передачи объекта, отсюда и потребность в форму возвращаться.
|
|
07.08.2024, 17:20 | #4 |
Участник
|
Поясните, пожалуйста, что Вы имеете ввиду
|
|
07.08.2024, 18:13 | #5 |
Участник
|
Причина по которой вынуждены возвращаться в formRun к объекту который как переменная в нем находится говорит о том, что в классе-обработчике событий отсутствует необходимый для работы его логики компонент. На момент конструирования класса, логично, этот компонент в обработчик и передать.
Иными словами - перекрыть конструктор по умолчанию, new CustomEventHandler(), добавив обязательный параметр. В этом случае инициализация будет иметь примерно такой вид: new CustomEventHandler(requiredToWorkObject). На момент срабатывания события, при таком подходе, formRun не будет нужен. Последний раз редактировалось Товарищ ♂uatr; 07.08.2024 в 18:17. |
|
07.08.2024, 20:02 | #6 |
Участник
|
В теории понятно, а на практике не очень. Может, мы о разных вещах говорим?
На форме есть кнопка. Right-click позволяет сгенерировать onClicked formControlEventHandler, где список параметров предопределен . Вроде, это стандартный подход, и при нем конструктор явно не вызывается. У Вас есть пример ? Последний раз редактировалось Lankey; 07.08.2024 в 20:06. |
|
09.08.2024, 22:49 | #7 |
Участник
|
У меня нет 365 под рукой. Мысль в инициализации подписчика и регистрации функции на конкретное событие из кода:
X++: SomeEventHandler someEventHandler = new SomeEventHandler(formRun);
...
targetControl.onClicked += someEventHandler.onTargetControlClicked; Последний раз редактировалось Товарищ ♂uatr; 09.08.2024 в 23:01. |
|