FindFocusedControlinForm(in.netCF)我有一个表单,我想知道哪个控件有焦点。我怎样才能做到这一点?我见过的最好的解决方案是让我遍历屏幕上的所有控件。虽然它有效,但要知道哪个控件具有焦点似乎需要做很多工作。看起来这是继续CF的方式。你可以按照最后所说的去做,或者实现你自己的表单基类来为你处理任务。publicclassBaseForm:Form{publicBaseForm(){this.Load+=newEventHandler(BaseForm_Load);}voidBaseForm_Load(objectsender,EventArgse){this.HandleFocusTracking(this.Controls);}privatevoidHandleFocusTracking(ControlCollectioncontrolCollection){foreach(controlCollection中的控制控件){control.GotFocus+=newEventHandler(control_GotFocus);this.HandleFocusTracking(control.Controls);}}voidcontrol_GotFocus(objectsender,EventArgse){_activeControl=senderasControl;}publicvirtualControlActiveControl{get{return_activeControl;}}私人控制_activeControl;避免控件迭代是不可能的,但如果你这样做,迭代只会发生一次,而不是每次你想了解活动控件。然后,您可以按照标准winforms应用程序调用ActiveControl,如下所示:Controlactive=this.ActiveControl;唯一的缺点是,如果您需要在运行时添加新控件,则必须确保它们正确连接到control_GotFocus事件。以上为C#学习教程:查找焦点控件分享的所有内容(在.代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
