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;
        }
    }

Source of TextBoxOnFocus

在GotFocus事件处理程序中,尝试检查TextBox Focused属性是否为真。看到:

控制。聚焦属性- MSDN

尝试使用控件。Capture或ContainsFocus属性,以确定文本框是捕获了鼠标还是包含了焦点。

我建议你这样做:

  public class Text : TextBox
  {
    protected override void OnEnter(EventArgs e)
    {
      base.OnEnter(e);
      //To stuff there
    }
  }

我试了几次控制焦点,但它非常"滑"。而且很难确定焦点从哪里来——或者要去哪里