none
BeginInvoke時出現『引動過程的目標傳回例外狀況』... RRS feed

  • 問題

  • 各位好:
    我在winform內BeginInvoke呼叫更新UI內gridView畫面的function內
    想要在GV內新增一筆資料時,同時Label內也新增PictureBox而且每次更新時,每個pb都移動一段距離
    程式如下:
    private void clsDoGvRefresh()
    
            {
    
                for (int i = 0; i < WaferList1_test.Count; i++)
    
                {
    
                    string[] waferInfo = WaferList1_test[i];
    
                    int rowCount = gvCh1.Rows.Count;
    
                    int rowCount2 = gv_allCh1.Rows.Count;
    
                    if (rowCount == 1) //第一筆直接塞入
    
                    {
    
                            //資料插入GV                        
    
                            gvCh1.Rows.Add(rowCount,"A","B" );
    
                            gv_allCh1.Rows.Add(rowCount,"A","B" );<br/>              }
    
                        //GV新增資料  
    
                        PictureBox P1 = new PictureBox();
    
                        P1.Image = Properties.Resources.Bule;
    
                        P1.Location = new Point(0, 35);//35
    
                        lbl_Ch1.Controls.Add(P1);
    
    
    
                    }
    
                    else
    
                    {
    
                        bool bWaferIDisContain = false;
    
                        for (int j = 0; j < gvCh1.Rows.Count; j++)  //GV內是否包含此筆WaferID
    
                        {
    
                            if (!gvCh1.Rows[j].IsNewRow)
    
                            {
    
                                if (gvCh1.Rows[j].Cells[1].Value.ToString().Equals(waferInfo[1]))//包含則更新GV
    
                                {
    
                                    UpdateGvRow(j, gvCh1, waferInfo);
    
                                    UpdateGvRow(j, gv_allCh1, waferInfo);
    
                                    bWaferIDisContain = true;
    
                                }
    
                            }
    
                        }
    
                        if (!bWaferIDisContain) //不包含則加入GV內
    
                        {
    
                           //GV新增資料                            
    
                                gvCh1.Rows.Add(rowCount,"A","B" );
    
                            gv_allCh1.Rows.Add(rowCount,"A","B" );
    //新增PB在label_1內 PictureBox P1 = new PictureBox(); P1.Image = Properties.Resources.Bule; P1.Location = new Point(0, 35); lbl_Ch1.Controls.Add(P1); } }
    //移動pb位置 if (lbl_Ch1.Controls.Count > 0) { //移除PB if (lbl_Ch1.Controls[i].Location.X > 840) { lbl_Ch1.Controls.RemoveAt(i); } else { lbl_Ch1.Controls[i].Location = new Point(lbl_Ch1.Controls[i].Location.X + 10, 35); } } } //以下還有4各for迴圈作相同的事情 所以以下省略 for (int i = 0; i < WaferList2_test.Count; i++) { //GV2新增資料 省略.... //Label2新增PB 同上 .... }
    當執行一段時間後,就會跳出 引動過程的目標傳回例外狀況
    這是什麼原因呢??
    麻煩各位不吝指教 謝謝
    2009年7月16日 上午 02:40