在多行文本框中,我的光标自动转到下一行
In multiline textbox, my cursor automatically goes to next line
我正在使用 winForms 制作一个信使应用程序。因此,当我在发件人的文本框中键入一条消息并按回车键时,消息已送达,但我的文本框上的光标第一次自动转到下一行。然后它会保留我输入和发送的所有消息。我正在为使用 return 的输入按钮使用一个简单的按键事件。问题是什么?代码如下:
private void txtChatOperatorMsg_KeyPress (object sender, KeyPressEventArgs e) {
if (e.KeyChar == (char) Keys.Return) {
pushToClientAndEmpty (txtChatOperatorMsg.Text);
}
}
private void pushToClientAndEmpty (string message) {
operatorgetset = message;
Thread operatorChatThread = new Thread (new ThreadStart (newThreadOperatorChat));
operatorChatThread.Start ();
txtChatOperatorMsg.Clear();
}
string operatorgetset {get;set;}
private void newThreadOperatorChat () {
SetText (operatorgetset);
}
您尝试过将 KeyPressEventArgs.Handled 设置为 true
吗?这会将事件标记为已处理,并跳过进一步处理。为了工作,你的 EventHandler
需要先于内部的。
这对你有用:
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar != 13) return;
textBox.Clear();
e.Handled = true;
}
正如 Binkam 所建议的,关键是 e.Handled
。
我正在使用 winForms 制作一个信使应用程序。因此,当我在发件人的文本框中键入一条消息并按回车键时,消息已送达,但我的文本框上的光标第一次自动转到下一行。然后它会保留我输入和发送的所有消息。我正在为使用 return 的输入按钮使用一个简单的按键事件。问题是什么?代码如下:
private void txtChatOperatorMsg_KeyPress (object sender, KeyPressEventArgs e) {
if (e.KeyChar == (char) Keys.Return) {
pushToClientAndEmpty (txtChatOperatorMsg.Text);
}
}
private void pushToClientAndEmpty (string message) {
operatorgetset = message;
Thread operatorChatThread = new Thread (new ThreadStart (newThreadOperatorChat));
operatorChatThread.Start ();
txtChatOperatorMsg.Clear();
}
string operatorgetset {get;set;}
private void newThreadOperatorChat () {
SetText (operatorgetset);
}
您尝试过将 KeyPressEventArgs.Handled 设置为 true
吗?这会将事件标记为已处理,并跳过进一步处理。为了工作,你的 EventHandler
需要先于内部的。
这对你有用:
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar != 13) return;
textBox.Clear();
e.Handled = true;
}
正如 Binkam 所建议的,关键是 e.Handled
。