使用 KeyEventArgs 将文本添加到文本框。 C#
Adding Text to a text box with KeyEventArgs. C#
我的这部分代码似乎无法正常工作。这段代码的 objective 是在每次用户按下 "ENTER" 时添加一个编号列表。这是我的意思的例子。
0)10100[用户按下 ENTER 键]
1)(光标在这里)
这是我的代码。 meowbox
是多行文本框。
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
meowbox.Text += i + ")";
++i;
}
base.OnKeyDown(e);
}
看起来您可能没有将代码放入正确的方法中。一种简单的方法是转到表单设计器,select 文本框,转到属性 window,单击闪电图标(用于方法),然后双击 KeyDown
方法。这将创建一个事件处理程序并将其连接到文本框。
您可能遇到的另一个问题(一旦正确连接)是文本框继续处理按键,即使您自己处理也是如此。要解决此问题,您可以将 SuppressKeyPress
设置为 true
。
例如:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
textBox1.Text += Environment.NewLine + i++ + ") ";
textBox1.SelectionStart = textBox1.Text.Length;
e.SuppressKeyPress = true;
}
}
我明白了!谢谢你们!我必须做的是 meowbox.KeyDown += new KeyEventHandler
。如果你想对我这么说,谢谢!
我的这部分代码似乎无法正常工作。这段代码的 objective 是在每次用户按下 "ENTER" 时添加一个编号列表。这是我的意思的例子。
0)10100[用户按下 ENTER 键]
1)(光标在这里)
这是我的代码。 meowbox
是多行文本框。
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
meowbox.Text += i + ")";
++i;
}
base.OnKeyDown(e);
}
看起来您可能没有将代码放入正确的方法中。一种简单的方法是转到表单设计器,select 文本框,转到属性 window,单击闪电图标(用于方法),然后双击 KeyDown
方法。这将创建一个事件处理程序并将其连接到文本框。
您可能遇到的另一个问题(一旦正确连接)是文本框继续处理按键,即使您自己处理也是如此。要解决此问题,您可以将 SuppressKeyPress
设置为 true
。
例如:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
textBox1.Text += Environment.NewLine + i++ + ") ";
textBox1.SelectionStart = textBox1.Text.Length;
e.SuppressKeyPress = true;
}
}
我明白了!谢谢你们!我必须做的是 meowbox.KeyDown += new KeyEventHandler
。如果你想对我这么说,谢谢!