C# C-组合框选择的索引交换
我有一个组合框,上面有一个员工列表。当用户选择EmpolyeName e1时,下面的列表框将填充所选员工的数据。这些数据可以修改。所有更改完成后,用户必须按下保存按钮 但是如果用户忘记按Save并从组合框中选择另一名员工,比如e2,那么我会在这里询问用户mEssagebox是否要为员工e1保存数据 如果是,则我保存特定员工e1的数据 但是在这里,当保存数据时,组合框索引被更改,其文本显示最近选择的employee e2,但数据是employee e1C# C-组合框选择的索引交换,c#,combobox,C#,Combobox,我有一个组合框,上面有一个员工列表。当用户选择EmpolyeName e1时,下面的列表框将填充所选员工的数据。这些数据可以修改。所有更改完成后,用户必须按下保存按钮 但是如果用户忘记按Save并从组合框中选择另一名员工,比如e2,那么我会在这里询问用户mEssagebox是否要为员工e1保存数据 如果是,则我保存特定员工e1的数据 但是在这里,当保存数据时,组合框索引被更改,其文本显示最近选择的employee e2,但数据是employee e1 如何在comboBox中保留employee
如何在comboBox中保留employee e1以前的旧文本,直到保存完成。很简单,当选择comboBox项时,将employee放入一个类变量中。使用此类变量而不是组合框中的项
保存或提示用户后,可以将变量设置为新选择的项。非常简单,当选择组合框项时,将员工放入类变量中。使用此类变量而不是组合框中的项
保存或提示用户后,您可以将变量设置为新选择的项。此处的重点应该是如何检测用户何时更改了列表框中的数据。您可以在某个地方放置一个标志,该标志将指示该特定用户的某些数据是否已更改。例如,如果列表框项目中的文本将发生更改,则可以使用事件来设置标志 例如:
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;
}
这里的重点应该放在如何检测用户何时更改了列表框中的数据上。您可以在某个地方放置一个标志,该标志将指示该特定用户的某些数据是否已更改。例如,如果列表框项目中的文本将发生更改,则可以使用事件来设置标志 例如:
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;
}
詹姆斯,我有一个共同的功能-CheckandSaveChanges。in-CheckandSaveChanges-only我处理提示和任何修改..如果有任何更改..我通过后台工作程序保存。我对combobox的selectedIndexChange调用了CheckandSaveChanges函数,但是combobox中的文本设置为最近选定的,而不是员工1以前的文本。如果用户决定不保存更改,您必须刷新列表框,即重新填充它。或者你可以在CheckAndSaveChanges方法之后进行刷新,因为不管怎样,正确的信息都会出现,因为此时你会保存新信息。james,我有一个常见的功能-CheckAndSaveChanges。in-CheckandSaveChanges-only我处理提示和任何修改..如果有任何更改..我通过后台工作程序保存。我对combobox的selectedIndexChange调用了CheckandSaveChanges函数,但是combobox中的文本设置为最近选定的,而不是员工1以前的文本。如果用户决定不保存更改,您必须刷新列表框,即重新填充它。或者,您可以在CheckAndSaveChanges方法之后执行刷新,因为不管怎样,都会显示正确的信息,因为此时您会保存新信息。