The SelectButton control on the contact list form processes all of the contacts selected by the user. A collection of ListViewItem objects is obtained from the SelectedItems property of the ListView object. The collection is iterated over and a string is appended with the SigninName of the selected contact and delimited with a comma. The generic dictionary<int, string> that was created and filled when the contact list was loaded is used here to obtain the SigninNames of the selected contacts.
Copy Code | |
---|---|
private void SelectButton_Click(object sender, EventArgs e) { /* * When this form is opened and the SelectMode property is * set to true, this selectButton is displayed so that the user * can select multiple contacts. The selected contacts are returned * with the SignInName property which will contain a comma-separated list * of contact sign-in names. * * This code iterates on the collection of selected listview items and looks * up the corresponding signin name from the dictionary<int,string> object listDict * Each signin name is appended to a string. Until the count of * selected contacts processed by the foreach loop reaches the total number of contacts * processed, a comma is appended to the string. */ StringBuilder sb = new StringBuilder(); int currentSelectedContact = 1; foreach (ListViewItem selectedContactItem in contactListView.SelectedItems) { if (contactListView.SelectedItems.Count == 1) { //append signin name of contact sb.Append(listDict[selectedContactItem.Index+1]); } else { //append signin name of contact sb.Append(listDict[selectedContactItem.Index+1]); //append a comma if this contact is not the last contact selected if (currentSelectedContact < contactListView.SelectedItems.Count) sb.Append(", "); currentSelectedContact++; } } // fill property with string built by foreach loop signInName = sb.ToString(); this.Close(); } |