Ratnakar
Ratnakar

Reputation: 1

How can we pass data from one opened form to another?

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 form then that will reflect in another child form immediately.

How this will happen?

Upvotes: 0

Views: 827

Answers (2)

Peyman
Peyman

Reputation: 3087

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

Upvotes: 0

Steven P
Steven P

Reputation: 1996

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.

Upvotes: 1

Related Questions