Я нашел хороший пример того, как удалить все CLICK события из формы:Как удалить событие закрытия?
private void RemoveClickEvent(Form c)
{
var f1 = typeof(Control).GetField("EventClick", BindingFlags.Static | BindingFlags.NonPublic);
var obj = f1.GetValue(c);
var pi = c.GetType().GetProperty("Events", BindingFlags.NonPublic | BindingFlags.Instance);
var list = (EventHandlerList)pi.GetValue(c, null);
list.RemoveHandler(obj, list[obj]);
}
и он хорошо работает. Тем не менее, мне нужно удалить событие закрытия, но я не знаю, что писать, а не EventClick
, чтобы заставить его работать. Я попытался написать EventClosing
, Closing
, но это не сработало. Таким образом, мой вопрос: Что нужно изменить, чтобы заставить его работать? Еще лучше - я хотел бы найти список всех возможных входов там, так как я, возможно, потребуется удалить другие события, как Closed
, FormClosing
, FormClosed
и т.д.
P.S. простой -=
невозможен, так как может быть много событий, связанных со многими из них, которые мне недоступны, поэтому я не смог бы их удалить.
Вы хотите, чтобы форма силы не закрывалась? –
Нет, на самом деле все наоборот: я хочу закрыть его без каких-либо событий, кроме стандартных закрытий. Например: я хочу, чтобы форма не показывала MessageBox с запросом «Есть несохраненные изменения. Вы уверены, что хотите закрыть?». –
Итак, когда вы нажимаете или пытаетесь закрыть форму, она показывает messageBox с вопросом? Я не мог полностью понять вашу проблему, но не могу удалить коды, отображающие сообщение? –