DocX添加多级标题

DocX实现了很多对word的需求,即使是没有直接提供的方法,也可以通过自定义来实现。
如果要添加多级标题的话,实质上就是添加一个段落,只是设置字体格式不同而已。
自定义扩展函数来实现此功能.

DocX给word添加目录TOC

DocX是一款开源的C#操作word的库,使用方便,也很轻巧,比起微软的interop使用体验要好多了。可以在不打开word的情况下直接修改word,可以完成日常所需的操作,是实现批量操作word的好帮手。
我这里主要是针对给word添加目录时遇到的一些问题记录下。刚要做目录的时候,我就想DocX应该提供了这个方面的函数。于是我就在讨论区搜索,看看别人是怎么用的。我搜索了catalog; catalogue; list; contents;,但是都没有和目录有关的东西,搞得我以为没提供,于是就又各种搜索,什么list之类的,搜着搜着就找到了一篇。
说是需要下载一个patch,但是不造在哪。还有的提供了利用其他的xml布局来帮助生成目录的。这些都不用管了,我用的是在DocX.cs里的源码里直接修改下的好方法。

ComBox数据源绑定

.NET对很多数据控件都提供了数据绑定的功能,很方便,但是在方便的时候又会有很多不便,以我的经验来看还是慎用为妙。不过在这里还是记录下ComBox的数据绑定,自动不全以及避免两个combox的数据联动。

winForm鼠标坐标

在C#winform中,可以用Control.MousePosition获得当前鼠标的坐标,使用PointToClient计算鼠标相对于某个控件的坐标,如下

1
2
3
4
5
Point screenPoint = Control.MousePosition;//鼠标相对于屏幕左上角的坐标
Point formPoint = this.PointToClient(Control.MousePosition);//鼠标相对于窗体左上角的坐标
Point contextMenuPoint = contextMenuStrip1.PointToClient(Control.MousePosition); //鼠标相对于contextMenuStrip1左上角的坐标
this.capture = true;//使用窗口捕捉鼠标移动事件,就是让当前的鼠标所有者为窗体,不能跨越控件

,