2016-04-05 54 views
0

我有兩種形式 第一個是FrmReceiveItems從中我可以顯示第二個 FrmItemSearch。在第二個中,我可以選擇某個項目以第一種形式添加到DataGridView。問題是,每當我添加一個項目時,我都會從第一個窗體獲得一個新對象。我希望將所有選擇的項目添加到第一個打開的表單中。我嘗試,如果第一種形式的任何對象被打開測試..如下:C#獲取信息後面的形式

private void dgv_ItemsSearch_CellContentClick(object sender, DataGridViewCellEventArgs e) 
{ 
    try 
    { 
     //Connection obj = new Connection(); 
     //Connection.FrmChose = 10; 
     FrmRecieveItemsVoucher FRI = new FrmRecieveItemsVoucher(); 

     Form frmT = Application.OpenForms["FRI"]; 
     int value = Connection.FrmChose; 
     if (value == 10) 
     { 
      FRI.dataGridView_ItemsVoucher.Rows.Add(); 
      int CurrentRowIndex = FRI.dataGridView_ItemsVoucher.Rows.Count; 
      FRI.dataGridView_ItemsVoucher.Rows[CurrentRowIndex - 1].Cells[0].Value = dgv_ItemsSearch.CurrentRow.Cells[2].Value; 
      FRI.dataGridView_ItemsVoucher.Rows[CurrentRowIndex - 1].Cells[1].Value = dgv_ItemsSearch.CurrentRow.Cells[1].Value; 
      // here I try to test 
      if (frmT != null) 
      { 
       this.Dispose(); 
      } 
      else 
      { 
       FRI.Show(); 
      }    
     } 
     else 
     { 
      FrmItems frmItems = new FrmItems(); 
      //frmCust.btn_new(sender,e); 
      string Code = Convert.ToString(dgv_ItemsSearch.CurrentRow.Cells[2].Value); 
      this.Dispose(); 
      frmItems.Show(); 
      frmItems.Show_Record_data(Code); 
     } 
    } 
    catch (Exception Ex) 
    { 
     MessageBox.Show(Ex.Message); 
    } 
} 

enter image description here

+0

請告訴我們最小的,完整的和可覈查的例子說明您的問題:http://stackoverflow.com/help/mcve – Fabjan

回答

0

也有很多的方式來實現這一目標。我個人的目標是創建一個BindingList並在該列表上設置一個ListChanged事件,然後觸發第二種形式的重新加載。

+0

好了,下面的代碼工作與我 VAR FrmRecieveItems = Application.OpenForms [「FrmRecieveItemsVoucher」]作爲FrmRecieveItemsVoucher; –