在输入keypress事件上逐个创建文本框

时间:2010-07-30 08:58:25

标签: c# winforms textbox

我正在使用c#vs-2005

上项目在form1上逐个创建文本框,并且在按钮点击事件上成功,我的代码在下面。

// declare location point of textbox on Global Area.
private point txtboxstartpoint=new point(10,10);

private void button_click (Object sender,EventArgs)
{
  Textbox tbx = new TextBox();
  tbx.Location= txtboxstartpoint;
  tbx.size=new size (200,20);
  this.panel1.control.add(tbx);
  txtboxstartpoint.y += 25;
}

这在按钮点击事件上工作正常,但问题出现在按键事件上,如输入

我想逐个创建文本框。为此我假设任何方法都有

在新创建的控件上创建并调用enter keypress事件,如文本框以创建

上一个下面的另一个新文本框。

请帮助我。建议适当的代码。

2 个答案:

答案 0 :(得分:2)

很难理解你的问题,但我们试着猜一下:

您有一个表单,如果用户按下某个特定键,您就想创建一个新的TextBox并在表单上显示它,无论哪个控件当前都是您表单中的焦点。

如果此声明为真,您可以将Form.KeyPreview设置为true。并向Form.KeyDown添加一个事件处理程序。

事实上,您将预览设置为true,您将获得之前的所有键盘,它将进一步提供当前焦点的控件。所以在这里你可以检查按下的键是否是你正在收听的键。如果是,请调用TextBoxFactory并将e.Handled设置为true,以防止此关键笔划另外到达当前关注的控件。

答案 1 :(得分:0)

我使用KeyDown事件拦截'F1'键,在一个非常小的程序中提供我的小帮助。这是代码:

  

private void MainForm_KeyDown(object sender,KeyEventArgs e)

    {
        if (e.KeyCode == Keys.F1)
        {
            //Your Code here
        }
    }