C#-comboBox选择了IndexChange

时间:2009-10-13 07:29:10

标签: c# combobox

我有一个包含EmpolyeeNames列表的ComboBox。当用户选择EmpolyeeName“e1”时,下面的ListBox将填充所选员工的数据。该数据可以修改。用户必须在完成所有更改后按“保存”按钮。

但是如果用户忘记按Save并从ComboBox中选择另一名员工说“e2”,这里我问用户mEssagebox“你想为员工保存数据”e1“ 如果是,那么我保存特定员工“e1”,

的数据

但是在这里保存数据组合框索引时会更改并且其文本显示最近选择的员工“e2”,但数据是员工“e1”。

我可以保留comboBox中旧的“e1”旧文本,直到保存完成。??

2 个答案:

答案 0 :(得分:3)

很简单,当选择组合框项目时,将员工放入类变量中。使用此类变量而不是组合框中的项。

保存(或提示)用户后,您可以将变量设置为新选择的项目。

答案 1 :(得分:1)

您的重点应该放在如何检测用户何时更改列表框中的数据。您可以在某个位置放置一个标志,指示某个数据是否已针对该特定用户进行了更改。例如,如果它是将在列表框项中更改的文本,则可以使用TextChanged事件来设置标记。

示例:

bool employeeEdited = false;

private ComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
     if (employeeEdited)
     {
         // prompt user to save
     }
     // reset flag
     employeeEdited = false;
}

private void ListBox1_TextChanged(object sender, EventArgs e)
{
     employeeEdited = true;
}