private void tabEmails_listEmails_SelectedIndexChanged(object sender, EventArgs e) { if (listEmails.SelectedItems.Count < 1) { textMsgID.Clear(); return; } // check whether msgids differs for selection SimpleMailTask prevTask = listEmails.SelectedItems[0] as SimpleMailTask; bool MsgIdVaries = false; foreach (Object selItem in listEmails.SelectedItems) { SimpleMailTask task = selItem as SimpleMailTask; if (task.MessageID != prevTask.MessageID) { MsgIdVaries = true; break; } prevTask = task; } if (!MsgIdVaries) { SimpleMailTask task = listEmails.SelectedValue as SimpleMailTask; textMsgID.Text = task.MessageID.ToString(); } else { textMsgID.Clear(); } textMsgIDChanged = false; }
private void tabEmails_buttonSet_Click(object sender, EventArgs e) { if (!textMsgIDChanged) { return; } int newId = 0; errorProvider.Clear(); errorProvider.SetIconAlignment(textMsgID, ErrorIconAlignment.MiddleLeft); try { newId = int.Parse(textMsgID.Text); } catch (FormatException) { errorProvider.SetError(textMsgID, "Wrong message id, please enter integer number."); return; } foreach (object selItem in listEmails.SelectedItems) { SimpleMailTask task = selItem as SimpleMailTask; task.MessageID = newId; dbClient.UpdateTask(task.TaskId, task); } int[] currentSelection = new int[listEmails.SelectedIndices.Count]; listEmails.SelectedIndices.CopyTo(currentSelection, 0); tabControl1_SelectedIndexChanged(sender, e); listEmails.SelectedIndexChanged -= tabEmails_listEmails_SelectedIndexChanged; listEmails.ClearSelected(); foreach (int selIndex in currentSelection) { listEmails.SetSelected(selIndex, true); } listEmails.SelectedIndexChanged += tabEmails_listEmails_SelectedIndexChanged; textMsgIDChanged = false; }