在“单击事件”的“文本框”中选择“文本”

本文关键字:文本 文本框 选择 事件 单击事件 单击 | 更新日期: 2023-09-27 18:12:23

你可以跟着我,这是最好的你创建一个小的应用程序,包含以下代码:

public Form1()
{
    InitializeComponent();
    textBox1.Text = "Any Text";
    textBox1.Click += delegate
                            {
                                textBox1.Select(0, 0);
                            };
}
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    linkLabel1.Focus();
}

linkLabel1只有在那里,你才能离开textBox1的焦点。

现在,只需点击textBoxSelect方法起作用,并选择文本的第一个位置。问题是,首先点击的位置被选中。只是很短的时间,但仍然很烦人。

我已经尝试了GotFocus事件中的this.SuspendLayout()(因为这在点击之前被触发)和点击事件中的this.ResumeLayout(),但没有成功。

你知道吗?

在“单击事件”的“文本框”中选择“文本”

非常感谢Mike

我通过创建一个从TextBox派生的类并重写OnMouseDown来解决这个问题:

protected override void OnMouseDown(MouseEventArgs e)
{
    this.Select(0, 0);
    base.OnMouseDown(e);
}

现在工作完美!