在表格中插入一列,提示插入后表格变得太大,能不能让表格自动适应文本大小呢?
在表格中插入一列,提示插入后表格变得太大,能不能让插入后的表格自动适应文本大小呢?回复 1# gaishitaibao 的帖子
gaishitaibao 你好,可以获取 table 宽度,在插入后,分别设置 column 宽度从而达到该效果:
private void Form1_Load(object sender, EventArgs e)
{
this.textControl1.Tables.Add(5, 5, 11);
}
private void insertColumnToolStripMenuItem_Click(object sender, EventArgs e)
{
//获取 Table
TXTextControl.Table table = textControl1.Tables.GetItem(11);
//获取 Table 宽度
int tableWidth = 0;
foreach (TXTextControl.TableColumn item in table.Columns)
{
tableWidth += item.Width;
}
//插入列
table.Columns.Add(TXTextControl.TableAddPosition.After);
//设置插入之后列宽
int columnCount = table.Columns.Count;
int averageColumnWidth = tableWidth / columnCount;
foreach (TXTextControl.TableColumn item in table.Columns)
{
item.Width = averageColumnWidth;
}
}
回复 2# iceman 的帖子
多谢多谢,和我的思路基本一样,就是你这样写可能不对,应该为下面这样子,就是应该在插入之前设置列宽。//获取 Table
TXTextControl.Table table = textControl1.Tables.GetItem();
//获取 Table 宽度
int tableWidth = 0;
foreach (TXTextControl.TableColumn item in table.Columns)
{
tableWidth += item.Width;
}
int columnCount = table.Columns.Count;
if (table.Columns.CanAdd)
{
//设置插入之后列宽
int averageColumnWidth = tableWidth / (columnCount+1);
foreach (TXTextControl.TableColumn item in table.Columns)
{
item.Width = averageColumnWidth;
}
//插入列
table.Columns.Add(TXTextControl.TableAddPosition.Before);
}
回复 3# gaishitaibao 的帖子
楼主威武~
页:
[1]