nisnfox 发表于 2012-5-2 10:03:00

Tx中表格问题

请问Tx中插入的table表格,有合并单元格的功能吗,怎么实现?谢谢。。。

iceman 发表于 2012-5-2 11:30:00

回复 1# nisnfox 的帖子

nisnfox 你好,
有两种方法可以实现 MergeCells:
1.通过 UI 选择单元格:在运行时,选择单元格范围,调用 Table 下 MergeCells 方法。
2.通过代码选择单元格:略复杂,下面分步阐述。
a.当前 table 有 10 行 10 列。
b.从起始单元格开始,第 0 行、第 1 行和第 2 行,分别选择前两个单元格:
textControl1.Selection.Start = 0;
textControl1.Selection.Length = 22;
c.从起始单元格开始,第 0 行和第 1 行分别选择前两个单元格:
textControl1.Selection.Start = 0;
textControl1.Selection.Length = 12;
d.上面两个代码片段说明,table 的选择形状必须为矩形。
f.合并单元格
table.MergeCells();

nisnfox 发表于 2012-5-2 15:57:00

请问怎么获取到所选中的单元格,类似word样通过鼠标移动可以选中获取多个单元格合并吗?

iceman 发表于 2012-5-2 18:01:00

回复 3# nisnfox 的帖子

nisnfox 你好,
1.请问楼主对 2# 中的设置选择单元格思路有疑问吗?问题是否解决呢?
2.获取所选中的单元格我们同样可以使用以下属性获取:

int start=this.textControl1.Selection.Start;
int length=this.textControl.Selection.Length;

例如获得选择的第一个单元格的方法为:

int startRow = start / currentTable.Columns.Count;
int startCol = start % currentTable.Columns.Count;
TXTextControl.TableCell startCell = currentTable.Cells.GetItem(startRow, startCol);

nisnfox 发表于 2012-5-3 08:52:00

回复 4# iceman 的帖子

请问大神table.MergeCells()属性中的table如何获取呢

iceman 发表于 2012-5-3 09:19:00

回复 5# nisnfox 的帖子

nisnfox 你好,
我们可以通过两种方法获取目标 Table,即 this.textControl1.Tables.GetItem() 两种重载:
1.第一种方法:在添加 table 的同时设置 table ID,通过 ID 获取:

this.textControl1.Tables.Add(10, 10, 11);
TXTextControl.Table table = this.textControl1.Tables.GetItem(11);


2.通过当前焦点所在 table ,即当前活跃 table :

TXTextControl.Table table = this.textControl1.Tables.GetItem();


以上两种方法推荐第一种。

nisnfox 发表于 2012-5-3 10:46:00

回复 6# iceman 的帖子

我用上述方法取到table后,科室没有table.MergeCells()这个属性,大神能否给个demo,用鼠标焦点选中table中多列合并即可,谢谢。。

iceman 发表于 2012-5-3 11:19:00

nisnfox 你好,
附件即为合并单元格 Demo:
测试环境:VS2010 && TX text Control 17.0

nisnfox 发表于 2012-5-4 14:51:00

大神,我用的是14版本,没有MergeCells这个属性:-|,请问在14版本中怎么解决这个问题,谢谢。。

iceman 发表于 2012-5-4 16:37:00

回复 9# nisnfox 的帖子

nisnfox 你好,
不好意思,TX 14.0 无法实现合并单元格。
页: [1]
查看完整版本: Tx中表格问题