单击文本框时,如何给它焦点但不更改其中的光标位置

spa*_*man 5 .net c# winforms

我为它创建了一个事件处理程序Textbox.Enter event,它选择文本框中的部分文本,如下所示:
TextBox1.Select(3,5);

结果如下:

当通过经由键盘输入文本框[TAB][SHIFT] - [Tab]键,
需要被选择的文本的所述部分被选择好,就像在上面的屏幕截图.

但是,如果不是通过键盘而是通过鼠标输入文本框,
则不会选择任何内容:

似乎发生的事情是这样的:

当我们用鼠标进入文本框时,
点击确实会提升Enter event,但鼠标点击还会将光标的位置设置为文本框内用户用鼠标单击的位置.
并且在运行事件处理程序之后立即执行此光标设置.

所以这意味着,事件处理程序执行的选择(使用该TextBox1.Select(3,5);行)被鼠标的位置覆盖,
这就是为什么用鼠标进入文本框,似乎没有选择任何东西.

我的问题:

如何让鼠标确实抬起Enter event,而不是更改文本框内的光标位置?
因此,我将能够保留我的选择(在代码中发生)并且不会被覆盖.

编辑:
这样做的目的是为了能够轻松选择MM:SS部分时间,这通常是正在编辑的部分(HH或mmm部分很少更改).

spa*_*man 1

我想建议另一种方式:

在事件处理程序的开头Control.Enter,我放置了以下内容:

while( (Control.MouseButtons&MouseButtons.Left)!=0 )
    Application.DoEvents();
Run Code Online (Sandbox Code Playgroud)

这只是等待鼠标左键被释放。

只有当鼠标左键松开时,我们才继续执行下一行代码,即

TextBox1.Select(3,5);
Run Code Online (Sandbox Code Playgroud)

然后它运行良好 - 选择发生,而没有被覆盖。