слишком длинный для комментария, включает ссылку и код ... но это комментарий ...
Многие люди жаловались, что UserControl не запускает событие GotFocus (). Например: UserControl и GotFocus () fyi: LostFocus () будет срабатывать, как ожидалось, по моему опыту. Раньше в нескольких проектах Forms я экспериментировал с реализацией «Enter» и «Оставить обработчики событий в UserControl в каждой форме» и обнаружил, что «Enter» вызывается только при загрузке формы.
Очевидно, что элементы управления UserControl «сосредоточены» (в некотором смысле я не могу объяснить, но, возможно, один из гуру SOF WinForms). Возможно, это связано с тем, что UserControl спускается из ContainerControl?
Я экспериментировал с написанием одного обработчика GotFocus ():
private void Control_GotFocus(object sender, EventArgs e)
{
Console.WriteLine("Control GotFocus : " + ((sender as Control).Name));
}
И затем в событии LoadControl UserControl подключили все элементы управления в UserControl к этому обработчику событий : я заметил, что элемент управления UserControl с самым низким TabIndex запускает событие GotFocus только при запуске приложения и при переключении между формами.
Единственное, что я видел, упомянутое в эта ситуация заключается в том, чтобы убедиться, что свойство IsTabStop для UserControl установлено на «True: это было от Shawn Wildermuth в MS в контексте связанного с SilverLight вопроса, поэтому не знаю, может ли это примениться в вашем случае.
Еще одно предложение, которое должно было написать обработчик событий MouseDown или MouseClick для UserControl, и в этом вызове: this.SetFocus();
никуда не привел меня.
Надеюсь, вы получите ответ!