我已經創建:無法訪問PictureBox的陣列
private System.Windows.Forms.PictureBox [] RedBoxes;
然後在的Form_Load,我做的:
RedBoxes = new PictureBox[20];
for (int i = 0; i < 20; i++)
{
RedBoxes[i] = new PictureBox();
RedBoxes[i].Image = global::IDMTestClient.Properties.Resources.Red;
RedBoxes[i].Name = "RedBox" + i.ToString();
RedBoxes[i].Size = new Size(1, 38);
RedBoxes[i].Location = new Point(i + 10, 32);
RedBoxes[i].TabIndex = i + 2;
RedBoxes[i].TabStop = false;
groupBox3.Controls.Add(RedBoxes[i]);
RedBoxes[i].Visible = false;
RedBoxes[i].BringToFront();
}
現在,當我嘗試訪問其他功能RedBoxes,它拋出一個:
「在System.Windows.Forms.dll中發生類型'System.InvalidOperationException'的第一次機會異常」
例如:
當我這樣做:
RedBoxes[i].Left = 10;
或
RedBoxes[i].Location = new Point(10, 32);
我在做什麼錯?
/------------------ UPDATE -------------------/
基{System.SystemException} = {「跨線程操作無效:從除線程以外的線程訪問控制‘groupBox3’創建它上。」}
這就是RedBoxes [I]具有。 WinForms自動生成線程的工作?
@ user633943 - 在代碼中,您在執行這兩個操作,因爲它們不在您發佈的主代碼示例中? - 對不起,如果這是一個愚蠢的問題 – 2011-02-25 10:41:29
你使用線程嗎?請提供更多示例代碼作爲@Digger要求,以便人們不必一直猜測,直到有人得到正確的答案。 – 2011-02-25 10:58:45
第一個(帶for循環)在form1_load();我做「RedBoxes [i] .Location =新點(10,32)」的地方;「是form1的成員函數。 – Ram 2011-02-25 11:06:27