如何在winform中將數據從一種表單傳遞給另一種打開的表單?我們如何將數據從一個打開的表單傳遞到另一個表單?
在Windows應用程序中,一個表單打開另一個表單。當我以父母形式輸入一些數據時,那麼這將立即反映在另一個孩子身上。
這將如何發生?
如何在winform中將數據從一種表單傳遞給另一種打開的表單?我們如何將數據從一個打開的表單傳遞到另一個表單?
在Windows應用程序中,一個表單打開另一個表單。當我以父母形式輸入一些數據時,那麼這將立即反映在另一個孩子身上。
這將如何發生?
取決於你想要得到多麼奇特。
最簡單的方法就是直接調用方法。
家長
_child = new ChildForm();
然後,當你發現的更新(框TextChanged,的SelectedIndexChanged等)
_child.UpdateData(someDataCollectedFromParent)
兒童
public void UpdateData(MyObject data)
{
textBox1.Text = data.FirstName;
textBox2.Text = data.SecondName;
}
除此之外,你腠ld構建消息傳遞機制或查看DataBinding基礎結構。
您還可以使用System.ComponentModel.INotifyPropertyChanged for MyObject。
public class MyObject : INotifyPropertyChanged
{
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
private object _data1;
public object Data1
{
get{ return _data1;}
set
{
_data1=value;
PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Data1"));
}
}
}
然後在你的孩子的形式,分配一個函數,在考慮接收更新的新數據(S)的這種情況下,如下面的代碼演示:
myObject1.PropertyChanged += new PropertyChangedEventHandler(m_PropertyChanged);
和m_PropertyChanged:
public void m_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
// update your data here, you can cast sender to MyObject in order to access it
}
問候, S. Peyman的Mortazavi
這會是這樣,我會用它來甲肝e孩子向父母發送信息,但不是相反。在這個例子中,孩子需要參考父母來訂閱它的事件。 – Servy 2012-02-09 15:13:12