2015-12-14 87 views
1

Form1 FocusedRowChanged當我做FocusedRowChanged事件,我想通過IDForm2填補GridView,但我GridViewForm2不清爽和數據不加載,我做什麼錯GridView的?填充(刷新)在Form2 Form1上

Form1中:

private void grvAsmenys_FocusedRowChanged(object sender, 
     DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) 
{   
    Form2 frmForm2 = new Form2(); 
    frmForm2.taKlaus.FillByID(frmForm2.dsKlaus.Klaus, 
     Convert.ToInt32(Id())); 
} 

public object Id() 
{ 
    var id = grvAsm.GetRowCellValue(grvAsm.FocusedRowHandle, "ID"); 
    return id; 
} 
+0

什麼是FillByID方法?你能將代碼添加到你的問題中嗎? – nempoBu4

+0

FillByID = SELECT ID,Klaus1,Klaus2 FROM Klaus WHERE(ID = @ID) –

+0

沒有足夠的信息。你能複製你的方法的整個代碼,並將其添加到你的問題?使用您的問題下面的«編輯»鏈接。 – nempoBu4

回答

0

的問題是,你正在創造新的Form2類實例每次當你改變焦點。相反,您需要擴大您的frmForm2變量的範圍以獲取當前的Form2實例。您可以將其推廣到現場。
例如:

private Form2 _frmForm2; //Field for holding the current Form2 instance. 

public void ShowForm2() 
{ 
    _frmForm2 = new Form2(); 
    _frmForm2.Show(); 
} 

private void grvAsmenys_FocusedRowChanged(object sender, 
     DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) 
{   
    //Form2 frmForm2 = new Form2(); 
    //Use the field instead. 
    _frmForm2.taKlaus.FillByID(_frmForm2.dsKlaus.Klaus, 
     Convert.ToInt32(Id())); 
}