2009-02-03 4 views
0

У меня есть приложение C# с несколькими «рабочими» формами. Эти формы имеют множество сборников, которые заполняются из базы данных при загрузке формы, а рядом с ними добавляются кнопки «добавить». Когда пользователь нажимает кнопку добавления, открывается административная форма, позволяющая пользователю добавить соответствующее значение в базу данных.C# - Обновление выпадающего списка после закрытия дочерней формы

Например, поле со списком может быть списком типов улиц. «Диск» не находится в таблице типов улиц в базе данных, поэтому пользователь хочет его добавить. Они нажимают кнопку «Добавить», и форма администратора загружается, поэтому они могут добавлять значение «Диск» к типам улиц. Когда закрывается админ-форма, я хочу повторно заполнить поле со списком при возвращении в рабочую форму.

Любое понимание того, как это сделать?

ответ

0

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

0

Один из способов - создать форму в виде модальной формы, и вы можете использовать this.Parent и получить доступ к общедоступному методу, который обновляет поле со списком.

1

Спасибо, ребята. Я использовал ShowDialog, и он отлично работал.

Администрирование adminForm = new Administration(); adminForm.tcAdministration.SelectedIndex = 1; adminForm.ExistingCaseNumber = this.ExistingCaseNumber; adminForm.ShowDialog();

this.PopulateComboBoxes();

+0

Быстро-n-грязный метод также подходит порой. MVP/MVC/SupervisingController (Presenter) - это не то, что легко реорганизовать на место. – JMD

0

Требуется больше работы, чтобы настроить его, если вы не с самого начала, но если вы делаете правильную вещь MVP [~], эта дочерняя форма «Добавить» должна инициировать обновление в вашей модели, что ваш контроллер наблюдает, что реагирует, обновляя эту часть представления.

[~] Martin Fowler отказался от использования термина Model-View-Presenter, но он все еще шарит между Контролирующим Контролером и Контролирующим Ведущим в качестве замены.

Пара ссылок:

0

Вы также можете сделать: Form1 FRM = (Form1) Application.OpenForms [ "Form1"]; Это позволит вам обновить форму с другой.

Смежные вопросы