C# 句柄以编程方式创建的文本框按键
我试图处理以编程方式创建的文本框的按键事件,但该事件不起作用,它显示该函数具有0引用C# 句柄以编程方式创建的文本框按键,c#,textbox,C#,Textbox,我试图处理以编程方式创建的文本框的按键事件,但该事件不起作用,它显示该函数具有0引用 TextBox tb = new TextBox(); this.Controls.Add(tb); 和事件处理程序 private void tb_KeyPress(object sender, KeyPressEventArgs e) { if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) ) {
TextBox tb = new TextBox();
this.Controls.Add(tb);
和事件处理程序
private void tb_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) )
{
e.Handled = true;
}
}
必须将事件处理程序添加到控件:
tb.KeyPress += tb_KeyPress;
通常,当您双击设计器中的
文本框时,VisualStudio会在幕后为您执行此操作。但是,由于这是以编程方式创建的,因此您必须自己完成此工作。您必须将事件处理程序添加到控件中:
tb.KeyPress += tb_KeyPress;
通常,当您双击设计器中的文本框时,VisualStudio会在幕后为您执行此操作。但是,由于这是以编程方式创建的,因此您必须自己完成这项工作。在添加到视图之前,您必须将自定义按键分配给文本框
TextBox tb = new TextBox();
tb.KeyPress += tb_KeyPress; //add this
this.Controls.Add(tb);
private void tb_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) )
{
e.Handled = true;
}
}
在添加到视图之前,必须将自定义按键指定给文本框
TextBox tb = new TextBox();
tb.KeyPress += tb_KeyPress; //add this
this.Controls.Add(tb);
private void tb_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) )
{
e.Handled = true;
}
}
抱歉,声誉不足,无法发表评论(这显然不是答案,请不要将其标记为:)
控件在哪里,对不起,我是c语言的新手#
从代码片段来看,似乎是手动添加控件,而不是从设计器添加控件。如果您是C#新手,我建议您从设计器中添加它-它将更好地处理其他需要的属性
例如,您还需要处理新创建控件的位置。除了按键处理程序的显式定义外,还需要指定Left和Top属性
TextBox tb = new TextBox();
tb.Left = 100; //distance from the left of your form
tb.Top = 100; //distance from the top of your form
tb.KeyPress += tb_KeyPress;
this.Controls.Add(tb);
抱歉,声誉不足,无法发表评论(这显然不是答案,请不要将其标记为:)
控件在哪里,对不起,我是c语言的新手#
从代码片段来看,似乎是手动添加控件,而不是从设计器添加控件。如果您是C#新手,我建议您从设计器中添加它-它将更好地处理其他需要的属性
例如,您还需要处理新创建控件的位置。除了按键处理程序的显式定义外,还需要指定Left和Top属性
TextBox tb = new TextBox();
tb.Left = 100; //distance from the left of your form
tb.Top = 100; //distance from the top of your form
tb.KeyPress += tb_KeyPress;
this.Controls.Add(tb);
控件在哪里,很抱歉,我在c#@MoatazMahmoud中是新手,请在this.Controls.Add(tb)之后添加该行代码>,不管你在哪里做的。控件在哪里,对不起,我在c#@MoatazMahmoud中是新手,请在this.Controls.Add(tb)之后添加该行代码>,无论您在何处执行此操作。