[英]Difference between “Active” control and “Focused” control
我试图弄清楚为什么这两行代码有时返回不同的值:
var focus = FindFocusedControl(_targetForm).Name;
var active = _targetForm.ActiveControl.Name;
FindFocusedControl
来自这里 :
private static Control FindFocusedControl(Control control)
{
var container = control as ContainerControl;
while (container != null)
{
control = container.ActiveControl;
container = control as ContainerControl;
}
return control;
}
我的active
是最不容易被挖掘的人吗? 它是否取决于实际上具有焦点的UserControl
是否在UserControl
内部?
_targetForm.ActiveControl
将在具有焦点或其子控件之一具有焦点的窗体上返回控件。
您的FindFocusedControl
实现执行相同的操作,但是递归检查子控件,直到子控件到达具有焦点的控件,然后将其返回。
因此,对于直接在窗体上的控件,它们将返回相同的值,但是对于堆叠在面板或其他容器上的控件,返回的值将不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.