2017-02-12 6 views
0

У меня есть два класса. Моя цель - изменить источник данных combobox, но я сначала проверил, могу ли я видеть, сколько элементов combobox имеет просто, но я не мог этого сделать it.I могу назвать ComboBox вне текущего класса, как:Я могу вызвать элемент управления вне текущего класса, но не могу манипулировать

public partial class secondclass: Form 
{ 
     public secondclass() 
     { 
      firstclass first=new firstclass(); 
      MessageBox.Show(first.comboBox1.Items.Count.ToString())//it gives 0 item 
      //even if i have 5 items. 
     } 

} 
public partial class firstclass: Form 
{..... 
} 
+0

Вы добавили элементы во время разработки? – imsome1

+0

Да и изменил модификатор от частного к публичному из combobox. –

+1

Вы получаете 0 элементов, потому что вы создаете новый instancr формы и спрашиваете об этом combobox, который пуст как его новая форма. – EpicKip

ответ

1

вы инстанцирован новую форму здесь firstclass first=new firstclass();. Вам нужно иметь указатель на существующую форму, в которой comboBox заполняется не новым, пустым. Отправьте указатель первого класса на второй класс, когда вы создали экземпляр второго класса следующим образом:

public partial class secondclass: Form 
{ 
     public secondclass(firstclass first) 
     { 
      // firstclass first=new firstclass(); 
      MessageBox.Show(first.comboBox1.Items.Count.ToString()) 
     } 

} 
public partial class firstclass: Form 
{ 
    private void button1_Click(object sender, EventArgs e) 
    { 
     secondclass second = new secondclass(this); // Pointer to first class 
    } 
}