mindrayguowei 发表于 2016-7-22 14:46:25

如何给表格设置默认字体

一个模板里面有好几个table, 其中两个table要求设置默认字体为Calibri字体.在模板里面设置好了字体, 并且输入了几行文字, 但是当用户光标定位到这个table,并且开始输入内容的时候, 字体就变成了默认的宋体.

怎么才能在这个两个table里面固定住字体呢?
在这两个table之外, 依然要求默认宋体.

gw0506 发表于 2016-7-25 11:16:48

做了一些尝试,基本确定解决办法就是给Selection设置FontName,FontSize等。
所以当你想指定一个Table都用某个字体的时候,就设置Selection的start和length,然后设置selection的字体属性就可以了。

mindrayguowei 发表于 2016-7-25 13:32:49

有个疑问, 我怎么设置长度呢? 长度是在变化的, 用户在不断的输入内容啊.

gw0506 发表于 2016-7-25 16:41:34

你可以直接设置成最后一个单元格的长度,也可以直接选中整个Table。
this.textControl1.Tables.Add(3,2,10);
            TableCell firstCell = this.textControl1.Tables.Cells.GetItem(0,0);
            TableCell lastCell = this.textControl1.Tables.Cells.GetItem(2,1);
            this.textControl1.Selection.Start = firstCell.Start;
            this.textControl1.Selection.Length = lastCell.Start + lastCell.Length;

或者

this.textControl1.Tables.Select();

mindrayguowei 发表于 2016-7-29 10:06:00

更新到了23版本, 部分解决了这个问题

gw0506 发表于 2016-7-29 12:08:03

mindrayguowei 发表于 2016-7-29 10:06
更新到了23版本, 部分解决了这个问题

还剩什么问题呢?咱们再讨论下。

mindrayguowei 发表于 2016-7-29 13:39:49

有点奇怪, 用32位Text Control, 输入时已经能默认按照我在模板里面写入文字的字体格式来, 这基本可以达到我的目的. 但是用64位Text Control就没有效果

Alice 发表于 2016-7-29 14:57:55

如果您想实现所有table的字体都是一样的。
可以通过遍历来实现。

            foreach (TXTextControl.Table table in this.textControl1.Tables)
            {
                foreach (TXTextControl.TableCell cell in table.Cells)
                {
                  this.textControl1.Select(cell.Start,cell.Length);
                  this.textControl1.Selection.FontName= "Arial";
                }
            }
页: [1]
查看完整版本: 如何给表格设置默认字体