0

我似乎无法让这部分代码工作。这段代码的目标是每次用户按下“ENTER”时添加一个编号列表。这是我的意思的例子。

0)10100[用户按下ENTER键]

1)(光标在这里)

这是我的代码。meowbox是一个多行文本框。

protected override void OnKeyDown(KeyEventArgs e)
{

    if (e.KeyCode == Keys.Enter)
    {

        meowbox.Text += i + ")";
        ++i;
    }

    base.OnKeyDown(e);
}
4

2 回答 2

1

看起来您可能没有将代码放在正确的方法中。一种简单的方法是转到表单设计器,选择文本框,转到“属性”窗口,单击闪电图标(用于方法),然后双击该KeyDown方法。这将创建一个事件处理程序并将其连接到文本框。

您可能遇到的另一个问题(一旦正确连接)是文本框继续处理按键,即使您自己处理它也是如此。要解决此问题,您可以设置SuppressKeyPresstrue.

例如:

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;
    }
}
于 2015-04-18T15:04:52.300 回答
0

我知道了!感谢你们!我必须做的是meowbox.KeyDown += new KeyEventHandler。如果你想对我这么说,谢谢!

于 2015-04-18T15:52:28.557 回答