2009-10-13 2 views
0

У меня есть ComboBox, у которого есть список EmpolyeeNames. Когда пользователь выбирает EmpolyeeName «e1», ListBox ниже заполняется данными для выбранного сотрудника. Эти данные могут быть изменены. Пользователь и должен нажать кнопку «Сохранить» после выполнения всех изменений.C# -comboBox Selected IndexChange

Но если пользователь забыл нажать «Сохранить» и выбрать другого сотрудника из ComboBox, скажите «e2», здесь я спрашиваю пользователя mEssagebox «Вы хотите сохранить данные для сотрудника« e1 » , если да, тогда я сохраняю данные конкретный сотрудник «e1»,

но здесь при сохранении индекса выпадающих получает данные изменился, и его текст шоу недавно выбранный сотрудник «e2», но данные из сотрудников «e1».

Как я могу сохранить старый прежний текст использования «e1» в comboBox до тех пор, пока сохранение не будет завершено.

ответ

3

Проще говоря, w При выборе элемента combobox класть сотрудника в переменную класса. Используйте эту переменную класса вместо элемента в поле со списком.

После того, как вы сохранили (или предложили) пользователя, вы можете установить эту переменную для вновь выбранного элемента.

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; 
} 
+0

Джеймс, Im имеющие одну общую функцию -CheckandSaveChanges(). в -CheckandSaveChanges() только я обрабатываю подсказку и любые изменения ..и если есть какие-либо изменения..и сохранить через фонового работника. i вызывает функцию CheckandSaveChanges на selectedIndexChange из combobox, однако текст в combobox устанавливает на недавний выбранный не прежний текст employee1. – Anees

+0

Вам нужно будет обновить список, если он повторно заселен, если пользователь решит не сохранять изменения. Или вы можете просто обновить после метода CheckAndSaveChanges, потому что независимо от того, какая информация будет отображаться в любом случае, так как вы сохранили новую информацию на этом этапе. – James

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