首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新程序员C# -如何添加多个numericUpDown值?

新程序员C# -如何添加多个numericUpDown值?
EN

Stack Overflow用户
提问于 2012-04-16 06:47:07
回答 1查看 1.9K关注 0票数 0

我正在制作一个程序,需要添加所有numericUpDowns的值,并显示在标签上。

通过编程创建numericUpDowns并将其添加到ArrayList中。

代码语言:javascript
复制
ArrayList numericUpDownMy = new ArrayList();
     numericUpDownMy.Add(new NumericUpDown());
        System.Drawing.Point h = new System.Drawing.Point(120, 275+ i * 19);          
        (numericUpDownMy[i] as NumericUpDown).Location = h;
        (numericUpDownMy[i] as NumericUpDown).Size = new System.Drawing.Size(50, 20);
        this.Controls.Add(numericUpDownMy[i] as NumericUpDown);
         int total = (((int)numericUpDown[0]) + ((int)numericUpDown[1]) + ((int)numericUpDown[2]) + ((int)numericUpDown[3]));
    labelScore.Text = total.ToString();

显然,这不起作用,因为我没有得到NumericUpDown的实际值。任何建议都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-16 06:50:28

更改此行:

代码语言:javascript
复制
  decimal total = (numericUpDownMy[1] as NumericUpDown).Value + 
                  (numericUpDownMy[2] as NumericUpDown).Value + 
                  (numericUpDownMy[3] as NumericUpDown).Value;

除此之外,不要使用ArrayList,使用List<NumericUpDown>,去掉所有的强制转换或在最后添加到集合中。我会这样写代码:

代码语言:javascript
复制
  List<NumericUpDown> numUpDnList = new List<NumericUpDown>();
  for (int i = 0; i < 3; i++)
  {
    NumericUpDown numUpDn = new NumericUpDown();
    numUpDn.Location = new System.Drawing.Point(120, 275 + i * 19);
    numUpDn.Size = new System.Drawing.Size(50, 20);
    this.Controls.Add(numUpDn);
    numUpDnList.Add(numUpDn);
  }
  decimal total = numUpDnList.Sum(updn => updn.Value);
  labelScore.Text = total.ToString();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10166846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档