Source of TextBoxOnFocus
本文关键字:TextBoxOnFocus of Source | 更新日期: 2023-09-27 18:01:55
使用c# WinForms,我为TextBox扩展了一些额外的功能。除其他事项外,当文本框获得焦点时,我会突出显示文本。当用户选择或单击控件时,这可以正常工作。然而,OnFocus也会在整个窗口获得焦点时被调用(例如alt+选项卡从另一个应用程序到我的应用程序),这是不希望的。
任何想法我可以检查是否onfocus()被调用,因为整个表单已经获得焦点?
谢谢,迈克
我当前的OnFocus()看起来像:
protected void mTextBox_OnFocus(object sender, EventArgs e)
{
if (MouseButtons == MouseButtons.None)
{
mTextBox.SelectAll();
mHasFocus = true;
}
}
在GotFocus事件处理程序中,尝试检查TextBox Focused
属性是否为真。看到:
控制。聚焦属性- MSDN
尝试使用控件。Capture或ContainsFocus属性,以确定文本框是捕获了鼠标还是包含了焦点。
我建议你这样做:
public class Text : TextBox
{
protected override void OnEnter(EventArgs e)
{
base.OnEnter(e);
//To stuff there
}
}
我试了几次控制焦点,但它非常"滑"。而且很难确定焦点从哪里来——或者要去哪里