Как сделать так, чтобы listbox позволял выбирать более одного элемента?
Мой код здесь не позволяет мне выбрать более одного элемента из списка. Когда я выбираю элемент в режиме отладки и нажимаю кнопку Выполнить, когда я нажимаю на другой элемент, элемент, который я выбрал последним, больше не выбирается.
Мне нужна помощь, чтобы понять, почему это не позволяет мне выбрать столько предметов, сколько я хочу.
Я добавил код, чтобы показать, как я заполнил свой список. Именно в этом заполненном списке я пытаюсь выбрать более одного элемента (имени), чтобы в конечном итоге отправить электронное письмо на эти выбранные имена. На данный момент я не беспокоюсь о том, чтобы отправить часть электронной почты. Я просто хочу иметь возможность выбрать более одного имени из заполненного списка.
Что я уже пробовал:
private void AdditionalStaffEmailListBox_SelectedIndexChanged(object sender, EventArgs e) { AdditionalStaffEmailListBox = new ListBox(); AdditionalStaffEmailListBox.SelectionMode = SelectionMode.MultiSimple; AdditionalStaffEmailListBox.BeginUpdate(); //Loop through all items in the AdditionalStaffEmailListBox for (int x = 0; x < AdditionalStaffEmailListBox.Items.Count; x++) { //AdditionalStaffEmailListBox.Items.Add("Item " + x.ToString()); if (AdditionalStaffEmailListBox.GetSelected(x) == true) { //Deselect all items that are selected AdditionalStaffEmailListBox.SetSelected(x, false); } else { //Select all items that are not selected AdditionalStaffEmailListBox.SetSelected(x, true); } } //Force the AdditionalStaffEmailListBox to scroll back to the top of the list AdditionalStaffEmailListBox.TopIndex = 0; }
У меня уже есть заполненный список (с именами). Вот заполненный список
public async void PopulateAdditionalStaffEmailListBox() { List<GetRequestorInfoModel> requestors = new List<GetRequestorInfoModel>(); try { requestors = await FTACaseReset.Controllers.RequestorInfoController.GetAllRequestorInfoes(); requestors = requestors.OrderBy(x => x.DisplayName).ToList(); //Has 15 items //Populate AdditionalStaffEmailListBox for (int i = 0; i < requestors.Count; i++) { ListBoxItem requestor = new ListBoxItem(); requestor.Text = requestors[i].DisplayName; requestor.Value = requestors[i].RequestorInfoID; //AdditionalStaffEmailListBox.Items.Add(i); AdditionalStaffEmailListBox.Items.Add(requestor.Text).ToString(); } } catch (Exception ex) { string errorMsg = string.Format("An error has occured in {0}. \nException:\n{1}", "AdditionalStaffEmailListBox()", ex.Message); MessageBox.Show(errorMsg, "Application Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }