SplitContainer被识别为ActiveControl

时间:2011-06-08 14:56:39

标签: c# winforms

在我的表单中,我有两个拆分容器和一些面板和ActiveX控件以及其他Windows窗体控件,如按钮,复选框等。现在在代码中我说

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

但它始终将splitcontainer1作为activeCnotrl返回。我该如何获得ActiveControl

2 个答案:

答案 0 :(得分:3)

假设“this”是表单,当您调用this.ActiveControl时,它会直接在表单上查找活动控件(this)。您可能需要做类似的事情:

this.splittercontainer1.ActiveControl 

答案 1 :(得分:2)

我有同样的问题,我通过检查控件是否为Splitcontainer然后检查splitcontainer中的Active Control来解决它。

if (ActiveControl.GetType() == typeof(SplitContainer))
{
    var containerControl = (SplitContainer)ActiveControl;
    if (containerControl.ActiveControl is MemoEdit)
    {
         //Do something
    }
}