2013-04-28 53 views
-2

我想通过我的数字高达找到一种方式来循环下来,作为一个值添加到的NumericUpDown,然后RELOOP下一NumericUpDown给它另一个值,以这种方式:C#变量的NumericUpDown

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

它一直在给出一个错误,因为它是无效的。有没有办法做到这一点?

+3

什么是无效样?假设你实际上有一个名为'numericUpDown'的数组。当然.. – Blorgbeard 2013-04-28 23:35:13

+0

数组?不,我不这么认为,我需要一个吗? – Omarrrio 2013-04-28 23:37:13

+2

那么,你在这里使用数组语法:'numericUpDown [91 - i] .Value = ..' – Blorgbeard 2013-04-28 23:40:07

回答

1

在我看来,你希望根据当前的“i”值获得对实际NumericUpDown控件的引用。

一种可能的方法是使用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(); 
    } 
}