我们如何将数据从一个打开的表单传递到另一个表单?
问题描述:
如何在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