C# office控件开发 如何使word中书签不被删除,且一直保持[]输入状态,非|状态
2013-04-19 18:45
369 查看
方案思路:
需要office限制编辑的支持,利用限制编辑控制书签的禁止删除
利用书签的Start和End属性控制书签一直保持[]输入状态,非|状态
解决方案:
实现该方案的初始条件
假设word此时是限制编辑状态,在限制编辑word的时候,对要使用的书签设置例外,即没有对书签进行限制编辑
第一步:word启动时候,需要利用书签的Start和End属性控制书签的起始字符位置和结束字符位置,将书签起始和结束字符位置,嵌入word的限制编辑域,贴出代码如下:
private void ThisDocument_Startup(object sender, System.EventArgs e)
{
ptcOhter1.Start = ptcOhter1.Start-1;
ptcOhter1.End = ptcOhter1.End+1;
}
第二步:当书签获得焦点时,将结束字符位置向后移动一位,这样就可以保持书签一直保持[]输入状态,非|状态,贴出代码如下:
//书签获取焦点时候设置书签其实位置
private void ptcOhter1_Selected(object sender, SelectionEventArgs e)
{
Microsoft.Office.Tools.Word.Bookmark bookmark = (Microsoft.Office.Tools.Word.Bookmark)sender;
//bookmark.Start = bookmark.Start - UtilTools.START_RANGE; ;
bookmark.End = bookmark.End + UtilTools.END_VALUE;
}
第三步:书签失去焦点时将书签的end位置复原(如果不恢复位置,多次触发获得焦点事件,就会使结束字符位置不停地累加,变形)
private void ptcOhter1_Deselected(object sender, SelectionEventArgs e)
{
Microsoft.Office.Tools.Word.Bookmark bookmark = (Microsoft.Office.Tools.Word.Bookmark)sender;
bookmark.End = bookmark.End - UtilTools.END_VALUE;
//bookmark.Start = bookmark.Start + UtilTools.START_RANGE;
}
第四步:word关闭前的处理,返回书签的起始字符位置和结束字符位置
private void ApplicationDocument_BeforeClose(object sender, System.ComponentModel.CancelEventArgs e)
{
////解除限制编辑
//UtilTools.applicationDocument = this;
//Word.Application newapp = this.Application;
//UtilTools.UnProtectDoc(ref newapp);
//改变书签结束位置
endBookMark();
}
需要office限制编辑的支持,利用限制编辑控制书签的禁止删除
利用书签的Start和End属性控制书签一直保持[]输入状态,非|状态
解决方案:
实现该方案的初始条件
假设word此时是限制编辑状态,在限制编辑word的时候,对要使用的书签设置例外,即没有对书签进行限制编辑
第一步:word启动时候,需要利用书签的Start和End属性控制书签的起始字符位置和结束字符位置,将书签起始和结束字符位置,嵌入word的限制编辑域,贴出代码如下:
private void ThisDocument_Startup(object sender, System.EventArgs e)
{
ptcOhter1.Start = ptcOhter1.Start-1;
ptcOhter1.End = ptcOhter1.End+1;
}
第二步:当书签获得焦点时,将结束字符位置向后移动一位,这样就可以保持书签一直保持[]输入状态,非|状态,贴出代码如下:
//书签获取焦点时候设置书签其实位置
private void ptcOhter1_Selected(object sender, SelectionEventArgs e)
{
Microsoft.Office.Tools.Word.Bookmark bookmark = (Microsoft.Office.Tools.Word.Bookmark)sender;
//bookmark.Start = bookmark.Start - UtilTools.START_RANGE; ;
bookmark.End = bookmark.End + UtilTools.END_VALUE;
}
第三步:书签失去焦点时将书签的end位置复原(如果不恢复位置,多次触发获得焦点事件,就会使结束字符位置不停地累加,变形)
private void ptcOhter1_Deselected(object sender, SelectionEventArgs e)
{
Microsoft.Office.Tools.Word.Bookmark bookmark = (Microsoft.Office.Tools.Word.Bookmark)sender;
bookmark.End = bookmark.End - UtilTools.END_VALUE;
//bookmark.Start = bookmark.Start + UtilTools.START_RANGE;
}
第四步:word关闭前的处理,返回书签的起始字符位置和结束字符位置
private void ApplicationDocument_BeforeClose(object sender, System.ComponentModel.CancelEventArgs e)
{
////解除限制编辑
//UtilTools.applicationDocument = this;
//Word.Application newapp = this.Application;
//UtilTools.UnProtectDoc(ref newapp);
//改变书签结束位置
endBookMark();
}
相关文章推荐
- C# office 控件编程 由于word中排版造成word复制【含书签】容易遇到的问题 .docx
- C# 如何在Word文档中添加,替换和删除书签
- Office PDF如何批量删除书签
- VC中如何使listctrl在点击控件空白处后还能保持上次的选中状态
- C# 如何处理Word文档分页——插入、删除、阻止分页
- C# office控件 开发环境的导出
- Word如何删除尾注的横线(Office 2003)
- C# 操作Word书签(一)插入、删除书签
- c#开发中mdi子窗体如何调用父窗体中控件
- 学习IOS开发项目篇--如何让程序在后台保持挂起状态
- 如何在Word分栏状态下正确的输入脚注?
- 敏捷开发:如何通过回顾保持学习状态
- 敏捷开发:如何通过回顾保持学习状态
- JAVA Eclipse开发Android如何让屏幕保持为竖直或水平状态
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
- Office 使用篇一:如何去掉 Word 文档的标记(含修订和批注)(即不显示已删除内容)
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
- Coding4Fun控件系列:在导航出页面后再导航回来的时候如何保持MessagePrompt的状态
- C#里WinForm开发中如何实现控件随窗体大小的改变而自动适应其改变
- c# office控件开发 利用 Content Control (內容控制項)來製作一份表單吧!