/// <summary>Raises the <see cref="E:AfterTextMessageItemUpdate"/> event.</summary>
 /// <param name="e">The <see cref="TextMessageViewer.AfterTextMessageItemUpdateEventArgs"/> instance containing the event data.</param>
 protected virtual void OnAfterTextMessageItemUpdate(AfterTextMessageItemUpdateEventArgs e)
 {
     if (AfterTextMessageItemUpdate != null) {
         AfterTextMessageItemUpdate(this, e);
     }
 }
        /// <summary>Presents form to edit and then update the currently selected text message within the ListView.</summary>
        /// <returns>True, when changes are committed, false, otherwise.</returns>
        public bool EditTextMessage()
        {
            bool result = false;
            if (SelectedItems.Count > 0) {
                TextMessageListViewItem lvi = SelectedItems[0] as TextMessageListViewItem;
                TextMessage message = lvi.Message;
                string filePath = message.FilePath;
                NewEditMessage form = new NewEditMessage(message);

                if (form.ShowDialog(this) != DialogResult.Cancel) {
                    TextMessageListViewItem lvi2 = new TextMessageListViewItem(form.Message);
                    Items.Insert(lvi.Index, lvi2);
                    lvi.Remove();
                    Sort();
                    result = true;
                    AfterTextMessageItemUpdateEventArgs args = new AfterTextMessageItemUpdateEventArgs(lvi, lvi2);
                    OnAfterTextMessageItemUpdate(args);
                }
            }
            return result;
        }
Exemplo n.º 3
0
 /// <summary>Updates message cache after <see cref="TextMessageListViewItem"/>.</summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="TextMessageViewer.AfterTextMessageItemUpdateEventArgs"/> instance containing the event data.</param>
 private void lvChildren_AfterTextMessageItemUpdate(object sender, AfterTextMessageItemUpdateEventArgs e)
 {
     MessageFolder messageFolder = (MessageFolder) tvParents.SelectedNode.Tag;
     //update cache...
     string cacheKey = messageFolder.RetrievePath();
     List<ListViewItem> items = new List<ListViewItem>(messageCache[cacheKey]);
     //remove from cache
     items.Remove(e.OldItem);
     //add to cache
     items.Add(e.NewItem);
     messageCache[cacheKey] = items.ToArray();
 }