找回密码
 立即注册

QQ登录

只需一步,快速开始

frankch

新手上路

1

主题

2

帖子

37

积分

新手上路

积分
37
  • 35

    金币

  • 主题

  • 帖子

最新发帖
frankch
新手上路   /  发表于:2014-11-13 13:48  /   查看:5833  /  回复:3
您好!请问sheet里面如果只有三列(A,B,C)的话,我想在窗体改变大小的时候,C列也可以随着窗体的大小而变化,如何实现。
例:
ScreenShot057.jpg (11.14 KB, 下载次数: 165)

评分

参与人数 1满意度 +5 收起 理由
tky + 5 感觉问题回答的很认真很容易理解,对新手来说是最好的学习资料

查看全部评分

3 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-11-13 19:29:00
沙发
回复 1楼frankch的帖子

你好,

测试代码如下:
  1.         private void 自适应ToolStripMenuItem_Click(object sender, EventArgs e)
  2.         {
  3.             int spreadW = this.fpSpread1.Width;
  4.             int spreadH = this.fpSpread1.Height;

  5.             //垂直滚动条宽度
  6.             int vScrollBar = SystemInformation.VerticalScrollBarWidth;
  7.             //水平滚动条高度
  8.             int hScrollBar = SystemInformation.HorizontalScrollBarHeight;

  9.             //列头高度
  10.             float columnHeaderH = 0;
  11.             for (int i = 0; i < this.fpSpread1.ActiveSheet.ColumnHeader.RowCount; i++)
  12.             {
  13.                 columnHeaderH += this.fpSpread1.ActiveSheet.ColumnHeader.Rows[i].Height+1;
  14.             }

  15.             //行头宽度
  16.             float rowHeaderW = 0;
  17.             for (int i = 0; i < this.fpSpread1.ActiveSheet.RowHeader.ColumnCount; i++)
  18.             {
  19.                 rowHeaderW += this.fpSpread1.ActiveSheet.RowHeader.Columns[i].Width+1;
  20.             }

  21.             //剩余宽度和高度
  22.             int leftWidth = spreadW - vScrollBar - Convert.ToInt32(rowHeaderW);
  23.             int leftHeight = spreadH - hScrollBar - Convert.ToInt32(columnHeaderH);

  24.             //计算并设置平均列宽
  25.             int averageColWidth = leftWidth / this.fpSpread1.ActiveSheet.ColumnCount;
  26.             for (int i = 0; i < this.fpSpread1.ActiveSheet.ColumnCount; i++)
  27.             {
  28.                 this.fpSpread1.ActiveSheet.Columns[i].Width = averageColWidth;
  29.             }

  30.             //计算并设置平均行高
  31.             int averageRowHeight = leftHeight/ this.fpSpread1.ActiveSheet.RowCount;
  32.             for (int i = 0; i < this.fpSpread1.ActiveSheet.RowCount; i++)
  33.             {
  34.                 this.fpSpread1.ActiveSheet.Rows[i].Height = averageRowHeight;
  35.             }
  36.         }
复制代码


为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢

评分

参与人数 1满意度 +5 收起 理由
frankch + 5 谢谢!

查看全部评分

回复 使用道具 举报
frankch
新手上路   /  发表于:2014-11-14 09:00:00
板凳
回复 2楼iceman的帖子

了解,谢谢!我做个DEMO试下。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-11-14 10:41:00
地板
回复 3楼frankch的帖子

好的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部