How can we pass data from one form to another opened form in winform?
In a windows application one form opens another form. When I am entering some data in parent f
Depends how fancy you want to get.
Simplest approach is just to call methods directly.
Parent
_child = new ChildForm();
then, when you detect updates (TextChanged, SelectedIndexChanged etc.)
_child.UpdateData(someDataCollectedFromParent)
Child
public void UpdateData(MyObject data)
{
textBox1.Text = data.FirstName;
textBox2.Text = data.SecondName;
}
Other than that, you could build your message passing mechanism or look into the DataBinding infrastructure.
You can also use 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"));
}
}
}
then in your child form, assign a function to receive this event on account of updating new data(s), as the following code demonstrates:
myObject1.PropertyChanged += new PropertyChangedEventHandler(m_PropertyChanged);
and 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
}
Regards, S. Peyman Mortazavi