-2

次のように、numericupdown に値を追加し、次のNumericUpDownに再ループして別の値を与えるなど、数値を上下にループする方法を見つけようとしています。

for (int i = 0; i < 35; i++)
{
    br.BaseStream.Position = 0x6316 + i*4;
    numericUpDown[91 - i].Value = br.ReadInt16();
}

有効ではないため、明らかにエラーが発生し続けます。そうする方法はありますか?

4

1 に答える 1

1

現在の「i」値に基づいて、実際の NumericUpDown コントロールへの参照を取得したいようです。

考えられるアプローチの 1 つは、Controls.Find() を使用して、次のようにコントロールの名前を渡すことです。

Control[] matches;
for (int i = 0; i < 35; i++)
{
    br.BaseStream.Position = 0x6316 + i * 4;
    matches = this.Controls.Find("numericUpDown" + (91 - i).ToString(), true);
    if (matches.Length > 0 && matches[0] is NumericUpDown)
    {
        ((NumericUpDown)matches[0]).Value = br.ReadInt16();
    }
}
于 2013-04-29T00:41:45.887 に答える