C#文本框在按Enter键后在第二行开始

C#文本框在按Enter键后在第二行开始,c#,textbox,C#,Textbox,在我的文本框清除之后。起始位置从第二行开始,而不是第一行。(我不知道闪光灯叫什么名字) 我正在制作一个聊天服务器,因此有一个按钮可以发送当前文本。按Enter键时,它将激活按钮1,以便发送当前文本 TextChanged事件仅用于调试目的 textChanged被调用两次。一旦进入收件箱,Text=string.Empty;这部分还可以。收件箱。文本为空 退出按钮1\u单击后,第二次调用TextChanged。但这一次。起始位置在第二行,而不是第一行。 inBox.Text的长度现在为2 知道有

在我的文本框清除之后。起始位置从第二行开始,而不是第一行。(我不知道闪光灯叫什么名字)

我正在制作一个聊天服务器,因此有一个按钮可以发送当前文本。按Enter键时,它将激活按钮1,以便发送当前文本

TextChanged事件仅用于调试目的

textChanged被调用两次。一旦进入收件箱,Text=string.Empty;这部分还可以。收件箱。文本为空

退出按钮1\u单击后,第二次调用TextChanged。但这一次。起始位置在第二行,而不是第一行。 inBox.Text的长度现在为2

知道有什么问题吗?谢谢

private void button1_Click(object sender, EventArgs e)
        {
            Global.Send("{Chat}{" + Global.userName + "}" + inBox.Text);
            inBox.Text = string.Empty;
        }

        private void inBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
                button1.PerformClick();
        }

        void InBoxTextChanged(object sender, EventArgs e)
        {
            TextBox tb = (TextBox)sender;
            char[] c = tb.Text.ToCharArray();
            int len = c.Length;
        }

将多行属性设置为false?

将多行属性设置为false?

之所以发生这种情况,是因为按键事件在按键发送到文本框之前触发。也就是说,您的代码执行后,一个keychar13被发送到文本框


请尝试改用KeyUp。

发生这种情况的原因是,按键事件在按键发送到文本框之前触发。也就是说,您的代码执行后,一个keychar13被发送到文本框

尝试改用KeyUp。

在Inbox_keyppressed()方法中,将KeyPressEventArgs.Handled属性设置为true(另外,您不应该使用
13
-
键。Return
更具可读性):

在Inbox_Keypressed()方法中,将KeyPressEventArgs.Handled属性设置为true(另外,您不应该使用
13
-
键。Return
更具可读性):


试着在单线上使用WLM?试着在单线上使用WLM?+1进行处理。但是钥匙。返回不是犹太洁食,它是一把虚拟钥匙。演员阵容提醒我们存在不匹配。请改为使用“\r”。@Hans:谢谢您提供有关Keys.Return的信息。事实上,我更像是一个德尔福人,而不是C:)Corrected.KeyUp不起作用,您现在将“\r”与文本一起发送。将e.Handled设置为true可防止将击键添加到文本中。@Hans good call on the KeyUp仍发送“\r”-我没有想到这一点,我同意这种方式更好。+1表示Handled。但是钥匙。返回不是犹太洁食,它是一把虚拟钥匙。演员阵容提醒我们存在不匹配。请改为使用“\r”。@Hans:谢谢您提供有关Keys.Return的信息。事实上,我更像是一个德尔福人,而不是C:)Corrected.KeyUp不起作用,您现在将“\r”与文本一起发送。将e.Handled设置为true可防止击键被添加到文本中。@Hans good call on the KeyUp仍发送“\r”-我没有想到这一点,我同意这种方式更好。顺便说一句,闪烁的I在其他名称中被称为“插入点”、“插入符号”或“I-Beam”。我最初认为它也叫插入符号。从方法“TextBox.ScrollToCaret”中,但用于插入符号的Wiki给出了另一个定义。谢谢你的解释。它叫插入符号。有关更多信息,请参阅。顺便说一句,闪烁的I在其他名称中被称为“插入点”、“插入符号”或“I形梁”。我最初认为它也叫插入符号。从方法“TextBox.ScrollToCaret”中,但用于插入符号的Wiki给出了另一个定义。谢谢你的解释。它叫插入符号。有关更多信息,请参阅。
private void inBox_KeyPress(object sender, KeyPressEventArgs e)
{
  if (e.KeyChar == 13)
  {
    button1.PerformClick();
    e.Handled = true;
  }
}