SplitContainer распознается как ActiveControl - PullRequest
1 голос
/ 08 июня 2011

В моей форме есть два разделенных контейнера, несколько панелей и элементы управления ActiveX, а также другие элементы управления Windows Forms, такие как кнопка, флажок и т. Д. Теперь в коде, который я сказал

        Control activeControl = this.ActiveControl;
        MessageBox.Show(activeControl.Name);

но он всегда возвращает splitcontainer1 как activeCnotrl. Как я должен получить ActiveControl?

Ответы [ 2 ]

3 голосов
/ 08 июня 2011

Предполагая, что "this" является формой, при вызове this.ActiveControl он ищет активный элемент управления непосредственно в форме (this). Вам, вероятно, придется сделать что-то вроде:

this.splittercontainer1.ActiveControl 
2 голосов
/ 09 апреля 2013

У меня была такая же проблема, я решил ее, проверив, является ли элемент управления разделенным контейнером, а затем проверил активный элемент управления внутри разделительного контейнера.

if (ActiveControl.GetType() == typeof(SplitContainer))
{
    var containerControl = (SplitContainer)ActiveControl;
    if (containerControl.ActiveControl is MemoEdit)
    {
         //Do something
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...