2013-09-10 3 views
0

Я создаю приложение с несколькими формами окон, используя C#, у меня есть две формы: одна родительская форма и дочерняя форма.Как обновить текущую форму на C#?

Из родительской формы я назвал дочернюю форму, чтобы добавить узел дерева в родительскую форму treeview. После ввода данных в дочернюю форму и нажатия кнопки «Добавить» я хочу закрыть дочернюю форму и хочу динамически добавлять узел дерева в древовидное представление внутри родительской формы.

Значимость совершенства, я использую свойства для передачи. Отдых с помощью this.Show() открывается другая родительская форма. Я уже пробовал Invalidate() и Refresh(), но treeview не обновляется.

+0

Как правило, не нужно аннулировать элемент управления: он недействителен. Вы абсолютно уверены (без обид), что данные, наконец, обновлены в древовидной структуре (например, вы можете попытаться получить данные из самого дерева)? –

+1

Я смущен. Где код? В чем проблема? Почему вы используете для этого несколько форм? Какова большая картина того, что вы пытаетесь достичь? –

ответ

2

Override форма ребенка конструктор принять родительскую форму в качестве параметра

ChiildForm chilForm=new ChildForm(parentFormObject);

Теперь вы можете вызвать метод родительской формы, что бы требуемое изменение на стр.

parentFormObject.RefreshSection(); 
+0

Спасибо Vinay, он работает как магия :-) – Rahul

1

но TreeView не обновляется

Для обновления TreeView вам нужно пересвязать его к источнику данных после добавления вновь добавленный элемент формы ребенка.

Пример:

List<SomeClass> items = new List<SomeClass>(); 
if(childForm.ShowDialog() == DialogResult.Ok) 
{ 
    items.Add(childForm.newlyAddedItem); //you have mentioned that values are passing perfect 
    //your code for rebinding to the treeview 
} 
+0

, если вы используете шоу, вам необходимо запустить событие, зарегистрированное в основной форме. Хотя, на мой взгляд, вам нужно использовать ShowDialog вместо шоу. – Ehsan

+1

это всего лишь пример того, как вы должны это делать. – Ehsan

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