2013-04-28 50 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(); 
    } 
}