我的文本框清除后。起始位置从第二行而不是第一行开始。 (我不确定闪烁的是什么)
我正在制作聊天服务器,因此有一个按钮可以发送当前文本。在按键输入时,它将激活button1以发送当前文本。
TextChanged事件纯粹是出于调试目的。
textChanged被调用两次。一旦打开inBox.Text = string.Empty;这部分还可以。 inBox.Text为null。
退出button1_Click后,第二次调用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;
}
答案 0 :(得分:1)
将multiline属性设置为false?
答案 1 :(得分:1)
发生这种情况是因为在将密钥发送到文本框之前会触发按键事件。也就是说,您的代码会执行,然后KeyChar 13将被发送到文本框。
请尝试使用KeyUp。
答案 2 :(得分:1)
在Inbox_Keypressed()方法中,将KeyPressEventArgs.Handled属性设置为true (另外,您不应该使用:< / p>
13
- Keys.Return
更具可读性)
private void inBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 13)
{
button1.PerformClick();
e.Handled = true;
}
}