У меня есть 2 проблемы:Какая кнопка называется этой формой?
"Какая кнопка называется эта форма?" (Короткая версия)
Я не могу коснуться кнопки или формы баттона
Почему я хочу этого?
У меня есть много форм и нужно знать, как пользователь туда попал. Если бы я мог получить форму (а не кнопку), она также может решить проблему.
Длинная версия: Мне нужно скопировать некоторые свойства исходной формы/кнопок на новый без делать это вручную, и я намерен использовать его в дальнейшей отчетности Exception, чтобы поймать больше информации
Изначально я пытался сделать «newForm.Caller = this;» на каждой кнопке, но есть 200+ форм и множество кнопок на каждом.
Все формы и его кнопки являются настраиваемыми элементами управления, поэтому я могу делать что-то там.
Пробовал вещи
Я пытался сделать что-то с StackFrames и отражения в виде конструктора, но не работают (889310)
Я нашел это 10401190 для JAVA, но это может» t help
Я думал, что могу использовать переопределение OnClick для хранения последнего экземпляра кнопки в статическом месте в кнопках/формах класс, то получим его в конструкторе формы, но, по-видимому, это худшее решение. (Многие вещи, открытые формы и виновник будет последняя кнопка нажата)
Проблема еще хуже, когда другие вещи, открытые формы и я потерял ссылку (DataGridVewButton, таймеры, связанные этикетки, ...)
EDIT1: (oɔɯǝɹ) Другая деталь, формы могут быть вызваны из внешних плагинов. Поэтому снова у меня нет недостатков в коде, чтобы изменить его.
EDIT2: Пример (Грэхэм Bass, ShreyasKapur) FormA имеет ButtonA, что при нажатии на шоу FormB FormA наследует FormBase Button наследует ButtonBase FormB наследует FormBase
Я не могу изменить Forma ни ButtonA коды , только FormBase и ButtonBase коды
Edit3: (Брэдли Uffner) ShowDialog() формы имеют свойство владельца, которое решает часть проблемы. Спасибо Брэдли, я забыл об этом! К сожалению, весь существующий код использует конструктор без параметров. «Отображает эту форму как модальное диалоговое окно, без владельца окна» (1)
Это похоже на случай обмена сообщениями. Вы используете рамки? –
@ graham-bass Я не. – Rafael
Как я понимаю, в кнопке OnClick может произойти что угодно, а также Form.Show()? И ShowDialog() тоже? Также создание формы может быть в OnClick, а не в тоже? – Spawn