Прошло много времени с тех пор, как я сделал MFC ...
В конечном счете, различие между диспетчерскими сообщениями C # и MFC, и в равной степени это не просто разные языки, а совершенно разные платформы - так чтодействительно правильно сказать, что одно «лучше», чем другое, , особенно просто из-за видимости метода обработки событий.Ничто не мешает вам изменить видимость обработчика C #, на самом деле в некоторых случаях вам может понадобиться это, чтобы искусственно вызвать событие (хотя есть и другие более правильные архитектурные способы достижения того же самого).
Обычно элементы управления формой и их событиями по умолчанию являются собственным бизнесом, и это имеет смысл.Точно так же другая подсказка относительно позиции C # по умолчанию private
находится в сигнатуре обработчиков - все они ожидают данных об отправителе и событии (обратите внимание, что MFC нет) - если базовый элемент управления является закрытым, то нет причин дляон общедоступен или защищен, поскольку внешний вызывающий не может предоставить правильные аргументы обработчику событий.
В этом отношении правильно, что обработчик является частным.