如何获得以编程方式创建NumericUpDown的价值?

时间:2012-05-02 12:04:20

标签: c#

我有程序根据用户输入(1-5)创建多个NumericUpDowns。我知道如何获得总价值,但我怎样才能获得每个NumericUpDown的价值。我试图使用label1测试它,但我得到NullReferenceException错误。

   NumericUpDown test= new NumericUpDown();
    test.Name = "mynum" + Convert.ToString(count2);
    numericUpDown.Add(test);
    System.Drawing.Point i = new System.Drawing.Point(8, 20+ i * 25);
    test.Location = i;
    test.Size = new System.Drawing.Size(50, 20);
    this.Controls.Add(test);
    test.ValueChanged += new EventHandler(mytotal);

此行抛出NullReferenceException错误。

label1.Text = test.Controls["mynum0"].Text;

1 个答案:

答案 0 :(得分:1)

 test.Name = "mynum" + Convert.ToString(count2);

你把它命名为“mynum”加上一个数字。所以你用test.Controls [“test0”]找不到它。将索引器参数修复为“mynum0”或Name属性赋值。

您遇到的下一个问题是NumericUpDown控件没有功能Text属性。它使用Value代替数字而不是字符串。因此,您需要将控件强制转换为NumericUpDown以访问Value属性。

 var nud = this.Controls["mynum0"] as NumericUpDown;
 if (nud == null) throw new Exception("I can't do that Dave, it isn't there");
 label1.Text = nud.Value.ToString();