Получить значение программно комбинированного списка в методе кнопки закрытия формы - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть кнопка, созданная автоматически, поэтому в событиях метода я могу легко вызывать значения как:

private void ComboEmployee_SelectedValueChanged(object sender, EventArgs e)
        {
          var employeeComboBox = sender as ComboBox;
          var currentTextCombo = employeeComboBox.Text
        }

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

 private void btnClose_Click(object sender, EventArgs e)
        {
            var employeeComboBox = sender as ComboBox;
            var currentEmployeeComboBoxText = employeeComboBox.Text;
            SaveTechniciansToNotify(currentEmployeeComboBoxText);
            this.Close();
        }

Проблема в том, что var currentEmployeeComboBoxText = employeeComboBox.Text; всегда имеет значение null, текущее значение comboBox не получается, как я могу получить текущее значение комбинированного списка в этом методе? Привет

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Вы столкнулись с этой проблемой, потому что объект sender в вашем btnClose_Click методе не является ComboBox (скорее всего это Button btnClose ) ,

Судя по вашему обработчику событий ComboEmployee_SelectedValueChanged , имя вашего ComboBox будет ComboEmployee .

Вы можете получить доступ к свойству Text ComboBox в вашем обработчике btnClose_Click , ссылаясь на него по имени, как показано ниже:

private void btnClose_Click(object sender, EventArgs e)
{
    var currentEmployeeComboBoxText = ComboEmployee.Text;
    SaveTechniciansToNotify(currentEmployeeComboBoxText);
    this.Close();
}
0 голосов
/ 05 сентября 2018

Простое в реализации решение заключается в создании частного поля типа string внутри вашего класса формы и передачи его в ваш метод SaveTechniciansToNotify:

//Make sure this is part of your class and not local to a method
private string _comboVal;

//Set your private field inside the SelectedValueChanged event of your combo box
private void ComboEmployee_SelectedValueChanged(object sender, EventArgs e)
{
     var employeeComboBox = sender as ComboBox;
     _comboVal = employeeComboBox.Text
}

//Finally Pass private field value to method SaveTechniciansToNotify
 private void btnClose_Click(object sender, EventArgs e)
 {
            //pass in your private field value
            SaveTechniciansToNotify(_comboVal);
            this.Close();
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...