如何防止输入键在多行文本框中生成新行
本文关键字:新行 文本 输入 何防止 | 更新日期: 2023-09-27 18:04:02
我想使用KeyDown事件防止回车键在多行文本框内生成新行。尽管使用textBox清除文本框。Text = "或textBox.Clear(),它的行为如下:https://i.stack.imgur.com/vvdnp.png
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
listBox1.Items.Add(textBox2.Text);
textBox2.Text = "";
}
}
所以,基本上你想定义一个文本框为多行,只接受一个长行吗?
似乎你只想要一个单行文本框。将文本框定义为单行,并在设计时将其设置为看起来像多行文本框。
另一个选项是保持框的原样,并允许用户输入其中的换行字符。然后,当需要数据时,只需删除后面的所有换行字符。
我做了一些实验,似乎在KeyUp
事件中添加了来自Enter键的新行。所以这应该工作(请注意,我使用KeyUp
而不是KeyDown
):
private void textBox2_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
listBox1.Items.Add(textBox2.Text);
textBox2.Text = "";
e.Handled = true;
}
}
或者你可以用
设置光标的位置textBox2.Select(0, 0);
代替e.Handled = true;