我有程序根据用户输入(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;
答案 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();