2015-12-03 4 views
1

У меня есть Form1, который содержит combobox, который показывает некоторый номер, сохраненный в базе данных, и также содержит кнопку (butn2), которая при нажатии вызывает другую форму и другую кнопку (butn1), которая обновляет комбо из базы данных. Вот в этой форме (Form2, Ребенок форма какого-то) я стараюсь Обновим данные выпадающего списка предыдущего вида (родительских один) по нажатию кнопки, создавая объект Form1Как обновить пользовательский интерфейс от одной формы до другой формы

Но когда я открыть и увидеть выпадающий он по-прежнему показывает одни и те же данные (он не обновляется).

Возможно ли обновить пользовательский интерфейс из combobox из одной формы в другую? Мой код

Form1 код:

public Form1() 
{ 
    InitializeComponent(); 
} 

Form1.Designer.cs:

Button butn1; 
Button butn2; 
ComboBox cmb1; 
private void InitializeComponent() 
{ 
    cmb1 = new ComboBox(); 
    butn1 = new Button(); 
} 
this.butn1.Click += new System.EventHandler(this.button_Save_Click); 
this.butn2.Click += new System.EventHandler(this.button_Save_Click2); 

public void button_Save_Click(object sender, System.EventArgs e) 
{ 
    UpdateComboBoxFromMySQL.InsertdataInCombo(this.cmb1); //Here i add data in combox through database, the code is correct i verfied it 
} 
public void button_Save_Click2(object sender, System.EventArgs e) 
{ 
    Form2 frm2 = new Form2(); 
    frm2.show(); 
} 

Form2 код:

Button butn2 = new Button(); 
//first i add some data to database, which are added i have seen the table-columns by opening DB. Now i want to update the Combobox from that data 
Form1 obj1 = new Form(); 
this.butn2.Click += new System.EventHandler(obj1 .button_Save_Click); //It calls the function button_Save_Click, i saw on debugging but still it do not update the data. 

Как обновить этот выпадающий из Form1 из Form2 нажмите кнопку?

+0

Вы можете найти несколько указателей здесь: http://stackoverflow.com/a/5647064/93623 В этом ответе подумайте о 'SomeClass' как о своей второй форме. –

+0

Возможный дубликат [Как получить доступ к элементу управления для другой формы?] (Http://stackoverflow.com/questions/4822980/how-to-access-a-form-control-for-another-form) –

+0

вы создавая новый form1 obj в коде form2, вам нужно будет получить объект form1 через Application.OpenForm collection путем iteracting форм или Form frm123 = Application.OpenForms ["form1"]; , также убедитесь, что combobox-модификатор является внутренним или общедоступным. –

ответ

1

Вы можете также показать Form2 с родительским form1

public void button_Save_Click2(object sender, System.EventArgs e) 
{ 
    Form2 frm2 = new Form2(); 
    frm2.Show(this); 
} 

Тогда вы можете получить доступ к Form1 через Owner свойство form2.

this.butn2.Click += new System.EventHandler(Owner.button_Save_Click); 
1

Предположим, что имя вашего первого Form - это Foobar. В этом случае вместо

Form1 obj1 = new Form(); 
this.butn2.Click += new System.EventHandler(obj1 .button_Save_Click); 

, который создает новый объект Form, вам это нужно:

Form obj1 = null; 
for (int i = ((obj1 == null) && (Application.OpenForms.Count - 1)); i >= 0; i--) 
{ 
    if (Application.OpenForms[i].Name == "Foobar") 
     obj1 = Application.OpenForms[i]; 
} 
if (obj1 != null) 
{ 
    this.butn2.Click += new System.EventHandler(obj1 .button_Save_Click); 
} 

Объяснение: obj1 инициализируется null. Создается цикл, чтобы найти Form, который вы хотите найти, а знак конца - либо завершенная итерация, либо найденный Form. Если найдено Form, то инициализируется obj1. После цикла, если был инициализирован obj1, вы можете использовать его, его элементы и методы, включая, но не ограничиваясь этим, button_Save_Click.

+0

Комбинация в родительской форме по-прежнему не обновляется? , Я изменил код дочерней формы в соответствии с вами, но до сих пор не обновляю поле со списком родительской формы с обновленной базой данных. – struggling

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

  • Нет связанных вопросов^_^