C# 句柄以编程方式创建的文本框按键

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) ) {

我试图处理以编程方式创建的文本框的按键事件,但该事件不起作用,它显示该函数具有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) )
    {
        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)之后添加该行,无论您在何处执行此操作。