2017-06-13 86 views

回答

0

我假設,你有一個ClickControl事件處理程序,用於調用UserControl1中的Button,以便將數據插入數據庫。

現在您必須從父窗體訪問UserControl2,找到DataGridView並再次執行數據綁定以獲取新數據。

我現在沒有視覺工作室,我盡我所能在這裏編寫代碼。

語法獲取父窗體:

Form parentForm = (this.Parent as Form); 

然後找到usercontrol2

var uc2 = parentForm.Controls.Find("UserControl2", true); 

,然後找到在DataGridView

var dg2 = (DataGridView)parentForm.Controls.Find("datagridview1", true); 

然後做數據綁定

// Fetch Data from DataBase 
dg2.DataBind(); 
+0

問題solved--,因爲我只有一個實例將被解僱每個用戶控件,我打電話的方法,填寫需要更新的用戶控件的datagridview ..順便謝謝你的迴應 –

0

您是否可以從表單中的userControl2訪問datagridview?
如果是這樣,則應在插入行後刷新DataSource。
如果和的UserControl1是usercontrol2與私人實現自定義控件,你可以到UserControl添加事件時,數據保存和方法userControl2可以刷新數據源

public partial class Form1:Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
     userControl1.DataSaved += (sender, e) => { userControl2.RefreshGrid(); }; // Attach event 
    } 
} 

class UserControl1 : UserControl 
{ 
    public event EventHandler DataSaved; 

    private void SaveData() // call this when user saves data 
    { 
     InsetDataToDb(); // real insert to db 
     var handler = DataSaved; 
     if (handler != null) 
      handler(this, EventArgs.Empty); // call event handler 
    } 
} 
class UserControl2 : UserControl 
{ 
    public void RefreshGrid() 
    { 
     // refresh data source of grid view 
     dataGridView.DataSource = GetDataSource(); 
    } 
} 
+0

問題解決了 - 因爲我只有每個用戶控件的一個實例,我調用了填充datagridview需要更新的用戶控件。順便謝謝你的迴應 –

相關問題