我想阻止Enter键使用KeyDown事件在多行文本框中创建一个新行。尽管使用textBox.Text =“”或textBox.Clear()清除了textBox,但它的行为如下:http://i.imgur.com/3sknAbO.png
private void textBox2_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
listBox1.Items.Add(textBox2.Text);
textBox2.Text = "";
}
}
答案 0 :(得分:0)
我正在尝试一下,似乎在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;
答案 1 :(得分:0)
那么,基本上你想将一个文本框定义为多行,只接受一行长行?
好像你只想要一行文本框。将文本框定义为单行,并在设计时将其设置为外观,就像多行文本框一样。
另一种选择是将框保持原样,并允许用户输入其中的换行符。然后,当您需要数据时,只需在事实之后删除所有换行符。