我必须预先在文本框中填充一些文本,并且希望光标在焦点对准时默认为文本框的开头。
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处理程序,但是没有运气。
是否有任何解决方法?
谢谢,-奔
您要完成的操作是什么-更改默认功能(例如通常会选择光标位置的单击)会导致用户体验问题。
也许您想要的是SETCUEBANNER方面的内容?
也许您可以将if块提取到它自己的方法中。
然后从txtBox_Enter()以及_Click或_AfterClick()(如果存在)中调用它>
您也可以使用_Focus()事件进行调查,尽管我不确定它们按触发事件的顺序落在哪里。
我还通过处理_MouseClick事件解决了此问题。我使用_Enter事件将选项卡放入控件案例中,并将相同的代码添加到_MouseClick: