如何在WinForms应用程序中自动回发ComboBox?

时间:2013-12-11 10:36:02

标签: c# winforms combobox

我有一个面向员工的Windows窗体应用程序,当我选择员工姓名时 从ComboBox中,文本框应填充所选员工的数据。我记得像自动回发属性,但我在Visual Studio中找不到它。

提前致谢。

3 个答案:

答案 0 :(得分:2)

如果您使用的是WinForms,那么就没有AutoPostBack这样的东西,那就是ASP.NET。在您的情况下使用SelectedIndexChanged - 事件。在这种情况下,您可以获取所选项目,并根据此项目获取员工的相应数据并填写文本框。

更多信息:

的伪代码:

private void YourComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
    string item = (string)YourComboBox.SelectedItem;
    //Fetch data (dummy method)
    Employee emp = GetDataByName(item);
    //Write to TextBox
    SomeTextBox.Text = emp.Function;
}

答案 1 :(得分:0)

Winforms提供以下事件:

  

SelectedIndexChanged在SelectedIndex属性具有时发生   改变。 SelectedValueChanged在SelectedValue时发生   财产变化。

您可以在此处详细了解它们:MSDN Combobox.

答案 2 :(得分:0)

您应该使用Combobox的SelectedIndexChanged事件。通常,当您双击表单上的ComboBox时,您将获得它。

为了存储带有值(假设ID)的文本并将其添加到Combobox,请按照以下答案操作:

  

https://stackoverflow.com/a/11745699/870865

例如:

// On load event, add the items to the ComboBox following the above link I have posted...

private void cmbEmployees_SelectedIndexChanged(object sender, EventArgs e)
{
      int EmployeeID = ((KeyValuePair<string, string>)cmbEmployees.SelectedItem).Value;
      var Employee = SomeClass.getEmployeeByID(EmployeeID); // Write a class or a method to get Employee as an object... 
      txtName.Text = Employee.Name;
      txtEmail.Text = Empolyee.Email;
}

希望这会给你一个想法!