如何在单击时设置文本框的光标位置

问题描述 投票:0回答:3

我必须预先在文本框中填充一些文本,并且希望光标在焦点对准时默认为文本框的开头。

private void txtBox_Enter(object sender, EventArgs e)
{
    if (this.txtBox.Text == "SOME PREFILL TEXT")
    {
        this.txtBox.Select(0, 0);
    }
}

我正在捕获_Enter,如上所述,如果我在文本框中输入标签,它实际上可以工作,但是如果我在文本框中单击鼠标,则光标会在执行鼠标单击的任何地方出现,表明在_Enter事件,有效地“覆盖”了我所做的事情。为了解决这个问题,我也加入了_Click事件以调用txtBox_Enter处理程序,但是没有运气。

是否有任何解决方法?

谢谢,-奔

c# textbox cursor position
3个回答
2
投票

您要完成的操作是什么-更改默认功能(例如通常会选择光标位置的单击)会导致用户体验问题。

也许您想要的是SETCUEBANNER方面的内容?


1
投票

也许您可以将if块提取到它自己的方法中。

然后从txtBox_Enter()以及_Click或_AfterClick()(如果存在)中调用它>

您也可以使用_Focus()事件进行调查,尽管我不确定它们按触发事件的顺序落在哪里。


0
投票

我还通过处理_MouseClick事件解决了此问题。我使用_Enter事件将选项卡放入控件案例中,并将相同的代码添加到_MouseClick:

© www.soinside.com 2019 - 2024. All rights reserved.