Как мы можем передавать данные из одной открытой формы в другую? - PullRequest
1 голос
/ 09 февраля 2012

Как мы можем передавать данные из одной формы в другую открытую форму в winform?

В приложении Windows одна форма открывает другую форму.Когда я ввожу некоторые данные в родительскую форму, это немедленно отражается в другой дочерней форме.

Как это произойдет?

Ответы [ 2 ]

2 голосов
/ 09 февраля 2012

Зависит от того, сколько вы хотите получить.

Самый простой подход - просто вызывать методы напрямую.

Родитель

_child = new ChildForm();

затем при обнаружении обновлений (TextChanged, SelectedIndexChanged и т. Д.)

_child.UpdateData(someDataCollectedFromParent)

Дети

public void UpdateData(MyObject data)
{
    textBox1.Text = data.FirstName;
    textBox2.Text = data.SecondName;
}

Кроме этого, вы можете создать механизм передачи сообщений или изучить инфраструктуру DataBinding .

0 голосов
/ 09 февраля 2012

Вы также можете использовать System.ComponentModel.INotifyPropertyChanged для 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"));
       }
     }
}

, а затем в дочерней форме назначить функцию для получения этого события за счет обновления новых данных, как показано нижекод демонстрирует:

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
}

С уважением, С. Пейман Мортазави

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...