找回密码
 立即注册

QQ登录

只需一步,快速开始

gaishitaibao
初级会员   /  发表于:2012-5-22 16:26  /   查看:5640  /  回复:3
在表格中插入一列,提示插入后表格变得太大,能不能让插入后的表格自动适应文本大小呢?

3 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-5-22 17:08:00
沙发

回复 1# gaishitaibao 的帖子

gaishitaibao 你好,
可以获取 table 宽度,在插入后,分别设置 column 宽度从而达到该效果:

  1. private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             this.textControl1.Tables.Add(5, 5, 11);
  4.         }

  5.         private void insertColumnToolStripMenuItem_Click(object sender, EventArgs e)
  6.         {
  7.             //获取 Table
  8.             TXTextControl.Table table = textControl1.Tables.GetItem(11);

  9.             //获取 Table 宽度
  10.             int tableWidth = 0;
  11.             foreach (TXTextControl.TableColumn item in table.Columns)
  12.             {
  13.                 tableWidth += item.Width;
  14.             }

  15.             //插入列
  16.             table.Columns.Add(TXTextControl.TableAddPosition.After);

  17.             //设置插入之后列宽
  18.             int columnCount = table.Columns.Count;
  19.             int averageColumnWidth = tableWidth / columnCount;
  20.             foreach (TXTextControl.TableColumn item in table.Columns)
  21.             {
  22.                 item.Width = averageColumnWidth;
  23.             }
  24.         }
复制代码
回复 使用道具 举报
gaishitaibao
初级会员   /  发表于:2012-5-22 19:27:00
板凳

回复 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);
            }
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-5-23 08:47:00
地板

回复 3# gaishitaibao 的帖子

楼主威武~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部