在我的表单中,我有两个拆分容器和一些面板和ActiveX控件以及其他Windows窗体控件,如按钮,复选框等。现在在代码中我说
Control activeControl = this.ActiveControl;
MessageBox.Show(activeControl.Name);
但它始终将splitcontainer1作为activeCnotrl返回。我该如何获得ActiveControl
?
答案 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
}
}