在多行文本框中,我的光标自动转到下一行

时间:2015-03-13 10:47:38

标签: c# winforms textbox cursor multiline

我正在使用winForms创建一个messenger应用程序。因此,当我在发件人的文本框中键入邮件并按回车键时,邮件会被传递,但我文本框上的光标会自动第一次进入下一行。然后它会保留在我输入和发送的所有消息中。我正在使用一个简单的按键事件来输入按钮,它使用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);
     }

2 个答案:

答案 0 :(得分:1)

您是否尝试将KeyPressEventArgs.Handled设为true?这标记事件处理并跳过进一步处理。为了工作,您的EventHandler需要先于内部版本。

答案 1 :(得分:0)

这对您有用:

    private void textBox_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar != 13) return;
        textBox.Clear();
        e.Handled = true;
    }

正如Binkam所说,关键是e.Handled