2

您可以关注我,最好创建一个包含以下代码的小应用程序:

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.

现在,只需单击textBox. 该Select方法有效,并且选择了文本的第一个位置。问题是,首先选择了点击的位置。只是时间很短,但仍然很烦人。

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

你有什么主意吗?

4

1 回答 1

0

非常感谢迈克

我通过创建一个派生TextBox和覆盖的类来解决这个问题OnMouseDown

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

    base.OnMouseDown(e);
}

现在完美运行!

于 2013-05-06T14:43:41.913 回答