我正在使用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事件,如文本框以创建
上一个下面的另一个新文本框。
请帮助我。建议适当的代码。
答案 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 } }