Обновить пользовательский элемент управления в форме: 1 в форме: 2 закрытие события в winforms C # - PullRequest
0 голосов
/ 26 сентября 2011

Форма: 1 содержит пользовательский элемент управления, для события щелчка ячейки в сетке пользовательских элементов управления я показываю форму: 2. Когда я обновляю значения в форме: 2 и закрываю ее, пользовательская сетка управления в форме: 1 должна обновляться. Я сделал то же самое, что и в этой ссылке , хотя она не выдает никакой ошибки, пользовательская сетка управления не получила привязку !!!

Пожалуйста, дайте мне знать, как это можно сделать.

Ответы [ 2 ]

4 голосов
/ 26 сентября 2011

Используйте преимущество метода ShowDialog () .

Если форма отображается как модальная, код, следующий за методом ShowDialog, не выполняется, пока диалоговое окно не будет закрыто. Однако когда форма отображается как немодальная, код, следующий за методом Show, выполняется сразу после отображения формы.

private void CellClicked()
{
   Form2 form2 = new Form2();
   form2.ShowDialog();
   //Execution stops here until you close the form2.

   myForm1Control.Values = form2.GetValues();

}
0 голосов
/ 27 сентября 2011

Я реализовал эту функцию с помощью делегатов,

Объявить делегата в пользовательском управлении,

public delegate void Delegate1(datatype param1,datatype param2, datatype param3);//should be similar to the method used to bind user control in form1
public Delegate1 RefreshGrid;

В событии щелчка ячейки пользовательского элемента управления после form2.ShowDialog () добавить

RefreshGrid(param1,param2,param3);

В конструкторе form1 после метода intializecomponent () добавить

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