具体来说,我想知道控件是否得到了焦点,因为用户选中了它或者是因为用户点击了它。
答案 0 :(得分:4)
您可以添加新的TabFocus和ClickFocus事件,并在点击或标签事件中将其关闭。
在你的gotFocus事件上,在userControl上设置一个标志。
justGotFocus = true;
添加活动 公共事件TabFocus,ClickFocus(元代码)
然后在鼠标和键事件中,你
TabFocus(this,new EventArgs())
ClickFocus(this,new EventArgs())
或只使用FocusType参数调用中心函数
公共事件SpecificFocusEvent SpecificFocus(this,FocusType.TabKey)
抱歉......累了......可怕的代码= P
您可以将上述内容放入附加属性中以便重复使用。
OR 我还没找到一个标志= P
PJ
修改强>
你走在正确的轨道上,只是有点乱。在MouseDown事件上设置标志,使用GotFocus读取它,并在MouseUp / GotFocus / LostFocus中清除它。这很难看,但它通常都有效。
答案 1 :(得分:0)
通过Control,你的意思是UserControl吗?
但是,当一个(输入)控件(如UserControl上的TextBox)获得焦点时,会引发UserControl的事件GotFocus。
UserControl本身无法获得焦点(通过单击UserControl的背景)。