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

前端 未结 2 897
故里飘歌
故里飘歌 2020-12-01 23:16

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

相关标签:
2条回答
  • 2020-12-01 23:43

    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.

    0 讨论(0)
  • 2020-12-01 23:54

    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

    0 讨论(0)
提交回复
热议问题