public void LinkTextToCard(object sender, RoutedEventArgs e) { Globals.ThisAddIn.Application.UndoRecord.StartCustomRecord("Link Card"); if (ListViewxaml.SelectedItems.Count == 1) { // select the range of text Microsoft.Office.Interop.Word.Range range = Globals.ThisAddIn.Application.Selection.Range; if (CheckRulesBookmark(range)) // controls that the paragraphs don't overimpose { MessageBox.Show("You can't assing overlapping paragraphs to cards."); ((CardControl)ListViewxaml.SelectedItem).Bookmarkfield = "None"; } Microsoft.Office.Interop.Word.Paragraphs paragraphs = Globals.ThisAddIn.Application.Selection.Paragraphs; // this checks that is paragraphs and not middle phrases if (paragraphs.Count > 0 && ((range.Start == paragraphs.First.Range.Start) && (range.End == paragraphs.Last.Range.End))) { // add a bookmark with a specific name calling another method the name will go into the label of the control string nameBookMrk = AddBookmark(range); ((CardControl)ListViewxaml.SelectedItem).Bookmarkfield = nameBookMrk; } else { MessageBox.Show("You need to select one or more paragraphs to add to the Card"); ((CardControl)ListViewxaml.SelectedItem).Bookmarkfield = "None"; } ((CardControl)ListViewxaml.SelectedItem).SetStats(); } Globals.ThisAddIn.Application.UndoRecord.EndCustomRecord(); }
public bool CheckRulesBookmark(Microsoft.Office.Interop.Word.Range range)// controls that the paragraphs don't overimpose FALSE= correct { int start = range.Start; int end = range.End; Microsoft.Office.Interop.Word.Paragraphs paragraphs = range.Paragraphs; foreach (Microsoft.Office.Interop.Word.Paragraph paragraph in paragraphs) { foreach (Microsoft.Office.Interop.Word.Bookmark bookmark in Globals.ThisAddIn.Application.ActiveDocument.Bookmarks) { foreach (Microsoft.Office.Interop.Word.Paragraph bparagraph in bookmark.Range.Paragraphs) { string debug1 = bparagraph.ID; string debug2 = paragraph.ID; if (bparagraph.ParaID == paragraph.ParaID) { return(true); } } } } return(false); }