2012-05-16 4 views
0

У меня есть combobox на form1, который мне нужно вызвать на form2, чтобы получить выбор пользователя. Может кто-нибудь, пожалуйста, дайте мне пример о том, как это сделать?Вызов combobox из другой формы

EDIT: Забыл объяснить, что я пытаюсь сделать. У меня есть текстовое поле readonly .... пользователь нажимает на редактирование, чтобы отредактировать текст, но я хочу, чтобы текст, который они хотят/выбрал для редактирования, появлялся сразу при вызове формы2.

У меня есть этот код на form1

public string SelectedComboValue 
    { 
     get { return comboBox1.SelectedItem.ToString(); } 
    } 

И этот код на форме 2

EDIT: Added Form1 form1 = null; BUT its still not returning the SelectedComboValue 
    public Form2(Form1 parentForm1) : this() 
    { 
     form1 = parentForm1; 
    } 

Но он дал мне ошибку говоря, что form1 не в этом контексте

+0

Можете ли вы показать код, который у вас есть до сих пор? – skaz

+0

Подробнее код, пожалуйста.Попробуйте опубликовать все классы формы (пропуская нерелевантные части). –

+0

Вы показываете код, связанный с кнопкой редактирования –

ответ

2

Я полагаю что Form1 является родительским элементом Form2, поэтому при создании Form2 вы используете такой код

Form2 f = new Form2(this); 

то в классе Form2 вы должны иметь декларацию, как этот

Form1 _parentForm = null; 

и в конструкторе Form2

public Form2(Form1 parentForm1) 
{   
    _parentForm = parentForm1;  
} 

Если это так, то вы можете позвонить

_parentForm.SelectedComboValue ; 

для получения требуемого результата

0

в C# Форма 2: создать выпадающую здесь

public string strDecVal{ 
set{ combobox1.text = value; } 
} 

в форме 1: , например у вас есть текстовое поле и кнопка, которая будет идти на Form2

поместить этот код на кнопке

Form2 frmShow = new Form2(); //Calling the form2 
frmShow.strDecVal = textbox1.text; 
frmShow.ShowDialog; 
0

В VB это гораздо более автоматизирован:

Form1: текстовое поле и кнопка в нажав на кнопку в Form1 поставить код:

Form2.Show() 

в Form2: на нагрузке поставить этот код:

ComboBox1.Text = Form1.TextBox1.Text 
0

Вы можете обернуть COMBOBOX объект из ComboBox класс, как это:

internal static ComboBox CB=comboBox1; 

Тогда вы можете вызвать его в другой форме, а также доступ ко всем методам и в дань класса ComboBox. Если вы хотите добавить элементы в этот CB, вы можете сделать это легко, как в родительской форме. Не имеет значения, является ли это внутренним или статическим, это просто для примера.

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