我开发了一个用于聊天的Windows应用程序。我正在使用多行文本框来输入聊天消息。输入消息后,用户必须按Enter或单击“发送”按钮将消息发送到另一端。这两个动作都调用了btnSend_Click()。这是代码
private void btnSend_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(txtChat.Text.Trim()))
{
CreateNewMessage(txtChat.Text.Trim());
txtChat.Clear();
txtChat.Select(0, 0);
}
}
但是txtChat.Select(0,0)不会将光标移到文本框的最开头。按Enter键后,光标始终到达第二行的起始位置,或单击“发送”按钮。为什么这段代码不起作用?请解释一下。请建议我解决这个问题。
P.S - 是否有其他方法将光标定位在多行文本框的开头?
答案 0 :(得分:-1)
以下是您解决问题的方法。请替换
txtChat.Clear();
txtChat.Select(0, 0);
到
txtChat.ResetText(); // it will reset the entire textbox once you click button.
txtChat.Focus(); // this will keep the focus back to text box and bring the cursor back to the very beginning of the textbox.