private void Frm_FindandChangeTL_Load(object sender, EventArgs e) { adddata(); string conn = "LayoutID='" + layoutID + "' order by StartP"; IList <LayoutBookMark> templist = Common.Services.BaseService.GetList <LayoutBookMark>("SelectLayoutBookMarkList", conn); marklist = templist; if (marklist.Count == 0) { MessageBox.Show("无书签!请先添加书签"); this.Close(); return; } if (W_Bkm.Exists(marklist[0].UID.ToString())) { object tempid = marklist[0].UID.ToString(); tempmk = W_Bkm.get_Item(ref tempid); tempmk.Select(); oldstr = tempmk.Range.Text; txtold.Text = oldstr; if (mkd.FindStr(marklist[0].UID.ToString()) != -1) { txtnew.Text = mkd.Data[mkd.FindStr(marklist[0].UID.ToString())].BQdata.ToString(); data_object = mkd.Data[mkd.FindStr(marklist[0].UID.ToString())].BQdata; newstr = txtnew.Text; } else { newstr = "暂无值"; txtnew.Text = newstr; txtnew.SelectAll(); } } }
public bool SetWordBookmarks(Word.Application objWord, Word.Bookmarks objBookmarks, string bookMarkName, string bookMarkValue) { try { Word.Bookmark objBookmark = null; Word.Range objRange = null; object objName; // Name of Bookmark - Object in the Word Template objName = bookMarkName; // get the Bookmark objBookmark = objBookmarks.get_Item(ref objName); objRange = objBookmark.Range; // set new value of Bookmark and // write new Bookmark back to Word.Document objRange.Text = bookMarkValue; return(true); } catch (Exception ex) { Console.Beep(); Console.Beep(); Message = String.Format("EXCEPTION: {0}", ex.ToString()); return(false); } }
//在书签位置插入一段文字,text为文字内容 public void InsertText(string bookmark, string text) { object oStart = bookmark; object range = wordDoc.Bookmarks.get_Item(ref oStart).Range; Microsoft.Office.Interop.Word.Bookmarks wdBookmarks = wordDoc.Bookmarks; Microsoft.Office.Interop.Word.Bookmark wdBookmark = wdBookmarks.get_Item(ref oStart); Microsoft.Office.Interop.Word.Selection wdSel; wdBookmark.Select(); wdSel = wordApp.Selection; wdSel.Text = text; wordDoc.Paragraphs.Last.Range.Text = "\n"; }
//删除书签 private void barButtonItem8_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { BM_Word = FrmGHBZTLContents.W_Doc; W_Bkm = BM_Word.Bookmarks; if (gridView2.SelectedRowsCount == 0) { MessageBox.Show("请选择标签"); return; } object bookmarkid = gridView2.GetRowCellDisplayText(this.gridView2.FocusedRowHandle, "UID").ToString(); string bookmarkname = gridView2.GetRowCellDisplayText(this.gridView2.FocusedRowHandle, "MarkName").ToString(); string booktype = gridView2.GetRowCellDisplayText(this.gridView2.FocusedRowHandle, "MarkType").ToString(); Word.Range temprange = null; bool flag = W_Bkm.Exists("test"); if (W_Bkm.Exists(bookmarkid.ToString())) { temprange = W_Bkm.get_Item(ref bookmarkid).Range; temprange.Select(); } if (booktype == "程序员") { MessageBox.Show("您不能删除程序员定义的标签,否则程序无法正常更新数据!"); return; } if (MessageBox.Show("确定要删除书签" + bookmarkname + "?", "询问", MessageBoxButtons.OKCancel) == DialogResult.OK) { //替换后标签就自动删除了 if (W_Bkm.Exists(bookmarkid.ToString())) { temprange.Text = temprange.Text; temprange.Font.Color = Word.WdColor.wdColorBlack; } LayoutBookMark data = this.gridView2.GetRow(this.gridView2.FocusedRowHandle) as LayoutBookMark;// new Ps_Table_GDP(); try { Common.Services.BaseService.Delete <LayoutBookMark>(data); InitGrid2(); this.Refresh(); MessageBox.Show("删除成功"); FrmGHBZTLContents.ParentForm.SaveData_Word(); } catch (Exception) { throw; } } }
//查找名称 private void barButtonItem14_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (barEditItem1.EditValue == null) { MessageBox.Show("请输入要查找的书签的名称"); return; } if (gridView2.RowCount == 0) { MessageBox.Show("没有书签可查找"); return; } string tagstr = barEditItem1.EditValue.ToString(); for (int i = num + 1; i <= gridView2.RowCount; i++) { if (i == gridView2.RowCount) { num = -1; MessageBox.Show("已搜索到结尾"); } if (gridView2.GetRowCellDisplayText(i, "MarkName").ToString().Contains(tagstr)) { gridView2.FocusedRowHandle = i; this.Refresh(); num = i; //定位该书签 BM_Word = FrmGHBZTLContents.W_Doc; W_Bkm = BM_Word.Bookmarks; object bookmarkid = gridView2.GetRowCellDisplayText(this.gridView2.FocusedRowHandle, "UID").ToString(); string bookmarkname = gridView2.GetRowCellDisplayText(this.gridView2.FocusedRowHandle, "MarkName").ToString(); Word.Range temprange = null; if (W_Bkm.Exists(bookmarkid.ToString())) { temprange = W_Bkm.get_Item(ref bookmarkid).Range; temprange.Select(); } break; } } //barEditItem1.Caption; }
public override List <string> GetBookmarksList() { var bmList = new List <string>(); for (int i = 1; i <= oBookmarks.Count; i++) { object oI = i; try { var bm = oBookmarks.get_Item(ref oI).Name; bmList.Add(bm); } catch (Exception ex) { bmList.Add("Не удалось считать закладку.\r\n" + ex.Message); } } this._bookmarks = bmList; return(bmList); }
//定位书签 private void barButtonItem13_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { BM_Word = FrmGHBZTLContents.W_Doc; W_Bkm = BM_Word.Bookmarks; if (gridView2.SelectedRowsCount == 0) { MessageBox.Show("请选择标签"); return; } object bookmarkid = gridView2.GetRowCellDisplayText(this.gridView2.FocusedRowHandle, "UID").ToString(); string bookmarkname = gridView2.GetRowCellDisplayText(this.gridView2.FocusedRowHandle, "MarkName").ToString(); Word.Range temprange = null; if (W_Bkm.Exists(bookmarkid.ToString())) { temprange = W_Bkm.get_Item(ref bookmarkid).Range; temprange.Select(); } else { MessageBox.Show("无法定位,可能在Word中已删除了该标签"); } }
public void Start() { try { //Make hidden document active to receive selection HiddenDoc.Activate(); //results in a slight application focus loss } catch (System.Runtime.InteropServices.COMException ex) { if (ex.Message == "Object has been deleted.") { //Open Blank document, then attach styles *and update HiddenDoc = Globals.ThisAddIn.Application.Documents.Add(ref missing, ref missing, ref missing, ref FalseObj); HiddenDoc.set_AttachedTemplate(ref templateObj); HiddenDoc.UpdateStyles(); HiddenDoc.Activate(); } else { throw; } } //Remove Continue Bookmark, if exists Word.Bookmarks hiddenDocBookmarks = Globals.ThisAddIn.Application.ActiveDocument.Bookmarks; if (hiddenDocBookmarks.Exists("Continue")) { object deleteMarkObj = "Continue"; Word.Bookmark deleteMark = hiddenDocBookmarks.get_Item(ref deleteMarkObj); deleteMark.Select(); deleteMark.Delete(); } //Tell hidden document it has been saved to remove rare prompt to save document HiddenDoc.Saved = true; //Keep track when started started = true; }
private void btnChange_Click(object sender, EventArgs e) { BM_Word = FrmGHBZTLContents.W_Doc; W_Bkm = BM_Word.Bookmarks; if (BM_Word.Application.Selection.Range.Text == null) { MessageBox.Show("请选择添加书签的文本!"); return; } if (txtMarkName.Text.Length == 0) { MessageBox.Show("请输入书签名称!"); txtMarkName.Focus(); return; } LayoutBookMark lbm = new LayoutBookMark(); lbm.UID = "B_M_" + lbm.UID; lbm.LayoutID = FrmGHBZTLContents.LayoutID; lbm.MarkName = txtMarkName.Text; lbm.MarkDisc = txtMarkDisc.Text; if (chbType.Checked) { lbm.MarkType = "程序员"; } else { lbm.MarkType = "用户"; } Word.Range tmpRng = BM_Word.Application.Selection.Range; if (tmpRng.Bookmarks.Count > 0) { MessageBox.Show(tmpRng.Text + " 已是书签或包含已有书签!"); return; } object oRng = tmpRng; W_Bkm.Add(lbm.UID.ToString(), ref oRng); object markid = lbm.UID.ToString(); Word.Bookmark tempbk = W_Bkm.get_Item(ref markid); tempbk.Range.Font.Color = Word.WdColor.wdColorBlue; lbm.StartP = tempbk.Start; if (tempbk.Range.Text.Length > 140) { lbm.MarkText = tempbk.Range.Text.Substring(0, 140); } else { lbm.MarkText = tempbk.Range.Text; } try { Common.Services.BaseService.Create <LayoutBookMark>(lbm); } catch (Exception) { throw; } FrmBookMark.Parentfrm.InitGrid2(); FrmBookMark.Parentfrm.Refresh(); MessageBox.Show("书签添加成功!"); //保存word FrmGHBZTLContents.ParentForm.SaveData_Word(); txtMarkName.Text = ""; txtMarkDisc.Text = ""; txtMarkName.Focus(); }
private void btnChange_Click(object sender, EventArgs e) { BM_Word = FrmGHBZTLContents.W_Doc; W_Bkm = BM_Word.Bookmarks; if (BM_Word.Application.Selection.Range.Text == null) { MessageBox.Show("��ѡ�������ǩ���ı�!"); return; } if (txtMarkName.Text.Length == 0) { MessageBox.Show("��������ǩ����!"); txtMarkName.Focus(); return; } LayoutBookMark lbm = new LayoutBookMark(); lbm.UID = "B_M_" + lbm.UID; lbm.LayoutID = FrmGHBZTLContents.LayoutID; lbm.MarkName = txtMarkName.Text; lbm.MarkDisc = txtMarkDisc.Text; if (chbType.Checked) { lbm.MarkType = "����Ա"; } else { lbm.MarkType = "�û�"; } Word.Range tmpRng = BM_Word.Application.Selection.Range; if (tmpRng.Bookmarks.Count > 0) { MessageBox.Show(tmpRng.Text + " ������ǩ�����������ǩ!"); return; } object oRng = tmpRng; W_Bkm.Add(lbm.UID.ToString(), ref oRng); object markid = lbm.UID.ToString(); Word.Bookmark tempbk = W_Bkm.get_Item(ref markid); tempbk.Range.Font.Color = Word.WdColor.wdColorBlue; lbm.StartP = tempbk.Start; if (tempbk.Range.Text.Length > 140) { lbm.MarkText = tempbk.Range.Text.Substring(0, 140); } else { lbm.MarkText = tempbk.Range.Text; } try { Common.Services.BaseService.Create<LayoutBookMark>(lbm); } catch (Exception) { throw; } FrmBookMark.Parentfrm.InitGrid2(); FrmBookMark.Parentfrm.Refresh(); MessageBox.Show("��ǩ��ӳɹ���"); //����word FrmGHBZTLContents.ParentForm.SaveData_Word(); txtMarkName.Text = ""; txtMarkDisc.Text = ""; txtMarkName.Focus(); }
public void End() { //Exit quietly if buffer hasn't started if (!started) { return; } //Turn off buffer started flag started = false; //Verify hidden document is active if ((HiddenDoc as Word.Document) != Globals.ThisAddIn.Application.ActiveDocument) { HiddenDoc.Activate(); } //Remove Continue Bookmark, if exists Word.Bookmarks hiddenDocBookmarks = Globals.ThisAddIn.Application.ActiveDocument.Bookmarks; hiddenDocBookmarks.ShowHidden = true; if (hiddenDocBookmarks.Exists("Continue")) { object deleteMarkObj = "Continue"; Word.Bookmark deleteMark = hiddenDocBookmarks.get_Item(ref deleteMarkObj); deleteMark.Delete(); } //Hidden doc selection curSel = Globals.ThisAddIn.Application.Selection; //Hidden doc range Word.Range hiddenDocRange; Word.Range bufDocRange; //Select entire doc, save range curSel.WholeStory(); bufDocRange = curSel.Range; //If cursor bookmark placed in, move there, else find end of text, put a bookmark there Boolean cursorFound = false; if (hiddenDocBookmarks.Exists("_cursor")) { object cursorBookmarkObj = "_cursor"; Word.Bookmark cursorBookmark = hiddenDocBookmarks.get_Item(ref cursorBookmarkObj); bufDocRange.SetRange(cursorBookmark.Range.End, cursorBookmark.Range.End); cursorBookmark.Delete(); cursorFound = true; } else { //The -2 is done because [range object].WordOpenXML likes to drop bookmarks at the end of the range bufDocRange.SetRange(curSel.End - 2, curSel.End - 2); } object bookmarkObj = bufDocRange; //Generate GUID for hidden bookmark System.Guid guid = System.Guid.NewGuid(); String id = "_buf" + guid.ToString().Replace("-", string.Empty); Word.Bookmark mark = Globals.ThisAddIn.Application.ActiveDocument.Bookmarks.Add(id, ref bookmarkObj); //Get OpenXML Text (Text with formatting) curSel.WholeStory(); hiddenDocRange = curSel.Range; string XMLText = hiddenDocRange.WordOpenXML; //Clear out contents of buffer hiddenDocRange.Delete(ref missing, ref missing); //comment this for docbuffer troubleshooting //Tell hidden document it has been saved to remove rare prompt to save document HiddenDoc.Saved = true; //Make primary document active Globals.ThisAddIn.Application.ActiveDocument.Activate(); //Get selection from new active document curSel = Globals.ThisAddIn.Application.Selection; //insert buffered formatted text into main document curSel.InsertXML(XMLText, ref missing); //Place cursor at bookmark+1 (this is done due to WordOpenXML ignoring bookmarks at the end of the selection) Word.Bookmarks bookmarks = Globals.ThisAddIn.Application.ActiveDocument.Bookmarks; bookmarks.ShowHidden = true; object stringObj = id; Word.Bookmark get_mark = bookmarks.get_Item(ref stringObj); bufDocRange = get_mark.Range; if (cursorFound) //Canned language actively placed cursor { bufDocRange.SetRange(get_mark.Range.End, get_mark.Range.End); } else //default cursor at the end of text { bufDocRange.SetRange(get_mark.Range.End + 1, get_mark.Range.End + 1); } bufDocRange.Select(); }