我需要预先填充一些文本的文本框,并希望光标在聚焦时默认为文本框的开头。
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处理程序,但没有运气。
有没有解决这个问题?
谢谢, -ben
答案 0 :(得分:2)
您要完成的是什么 - 更改默认功能(例如通常选择光标位置的点击)是要求用户体验问题。
也许你想要的是SETCUEBANNER的某些内容?
答案 1 :(得分:1)
也许您可以将if块提取到它自己的方法中。
然后从txtBox_Enter()以及_Click中调用它,如果存在,则_AfterClick()
你也可以使用_Focus()事件进行调查,虽然我不确定它们在触发事件的顺序中的位置。
答案 2 :(得分:0)
我还通过处理_MouseClick事件解决了此问题。我使用_Enter事件将选项卡放入控件案例中,并将相同的代码添加到_MouseClick:
private void txtBox_MouseClick(object sender, EventArgs e)
{
if (this.txtBox.Text == "SOME PREFILL TEXT")
{
this.txtBox.Select(0, 0);
}
}
同时使用_Enter和_MouseClick事件应该可以满足您的需求。