如何在 C# Windows 窗体中获取所有动态 numericupdown 值

Isa*_*lla 2 .net c# iteration loops numericupdown

我想从通过 for 循环生成的 NumericUpDown 中获取值,该循环将被迭代 N 次。但是在我的代码中,我只能获取第一个 NumericUpDown 值,并且它是通过单击按钮触发的。

显示 NumericUpDown 工具的代码:

for (int i = 0; i < 6; i++) // should be i < n
{
    NumericUpDown note = new NumericUpDown();
    note.Name = "Note" + i.ToString();
    note.Location = new System.Drawing.Point(20, 40 + (40 * i));
    note.Size = new System.Drawing.Size(40, 25);
    note.Maximum = new decimal(new int[] { 10, 0, 0, 0 });
    this.Controls.Add(note);
}
Run Code Online (Sandbox Code Playgroud)

获取值的代码:

var numericUpDown = this.Controls["note0"] as NumericUpDown;
var value = numericUpDown.Value;
MessageBox.Show(value.ToString());
Run Code Online (Sandbox Code Playgroud)

我怎样才能获得所有的值?非常感谢您的帮助。

suj*_*lil 5

我希望您正在寻找这样的东西:

foreach (NumericUpDown ctlNumeric in this.Controls.OfType<NumericUpDown>())
{
    var value = ctlNumeric.Value;
    MessageBox.Show(value.ToString());
}
Run Code Online (Sandbox Code Playgroud)