我们如何在winform中将数据从一个表单传递到另一个打开的表单?
在Windows应用程序中,一个表单打开另一个表单。当我以父表格输入一些数据时,那将立即反映在另一个子表单中。
这将如何发生?
答案 0 :(得分:1)
取决于你想得到多么花哨。
最简单的方法就是直接调用方法。
家长
_child = new ChildForm();
然后,当您检测到更新(TextChanged,SelectedIndexChanged等)时
_child.UpdateData(someDataCollectedFromParent)
儿童强>
public void UpdateData(MyObject data)
{
textBox1.Text = data.FirstName;
textBox2.Text = data.SecondName;
}
除此之外,您可以构建消息传递机制或查看DataBinding基础结构。
答案 1 :(得分:0)
您也可以为MyObject使用System.ComponentModel.INotifyPropertyChanged。
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"));
}
}
}
然后在您的子表单中,指定一个函数以更新新数据来接收此事件,如下面的代码所示:
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