Запустить событие при возврате из внешнего приложения

#c# #winforms

#c# #winforms

Вопрос:

У меня есть следующая функция, она возвращает мне выбранный элемент управления приложением, если я возвращаюсь к своему приложению. Теперь я хочу вызвать событие выбранного элемента управления.

На самом деле я хочу выделить текст выбранного элемента управления textbox только в том случае, если выбрано приложение. Для этой задачи я написал несколько событий _Enter, но они не будут запущены, если вы вернетесь к своему приложению

Итак, я попытался получить активное управление приложением и запустить событие, которое я подготовил, но мне не удалось запустить событие. Активным элементом управления может быть одно из 10 текстовых полей. Пожалуйста, помогите.

 protected override void WndProc(ref Message m)
{
    //react to switching from an external application
    const int WM_ACTIVATEAPP = 0x001C;
    switch (m.Msg)
    {
        case WM_ACTIVATEAPP:
            {
                if (m.WParam.ToInt32() == 1)
                {
                    //null blocker
                    var temp = this.ActiveControl;
                    if (temp != null)
                    {
                        //if you have a splitcontainer, it is always the active control...
                        if (temp.GetType() == typeof(SplitContainer))
                        {
                            var containerControl = (SplitContainer)ActiveControl;
                            if (containerControl.ActiveControl is TextBox)
                            {
                                //how can i call the _Enter event of the selected control?
                                ((TextBox)containerControl.ActiveControl).Enter  = ???;
                            }
                        }
                    }
                }
                break;
            }
    }
    // proceed with default processing
    base.WndProc(ref m);  
}
  

Все события одинаковы:

 private void tB_IMEI_Enter(object sender, EventArgs e)
{
    tB_IMEI.SelectionStart = 0;
    tB_IMEI.SelectionLength = tB_IMEI.TextLength;
}
  

Редактировать:
Комментарий BugFinder сделал свое дело.
Найдено старое событие для активации формы, но это было до внедрения SplitContainer.
Я исправил это для работы с элементом управления SplitContainer.
Спасибо, поиск ошибок!

Рабочее решение:

 private void focusAllTheText(object sender, EventArgs e)
{
    TextBox myBox = ((TextBox)sender);
    myBox.SelectAll();
}
private void SearchProvision_Activated(object sender, EventArgs e)
{
    if (ActiveControl != null amp;amp; ActiveControl is SplitContainer)
        focusAllTheText(((SplitContainer)ActiveControl).ActiveControl, EventArgs.Empty);
}
  

Комментарии:

1. конечно, формы активируют триггеры событий, хотя