找回密码
 立即注册

QQ登录

只需一步,快速开始

lud
论坛元老   /  发表于:2012-6-20 10:15  /   查看:8355  /  回复:5
我能不能设置列宽在拉动时,如果列宽小于10  不让拉宽,大于才可以变大或变小

5 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-6-20 10:55:00
沙发
回复 1楼lud的帖子

你可以在fpSpread1.ColumnWidthChanging事件中来判断,并添加相应的业务规则。
回复 使用道具 举报
lud
论坛元老   /  发表于:2012-6-20 11:06:00
板凳
使用了,但是一直控制不了,求救代码
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-6-20 11:11:00
地板
假设我要控制第一列的宽度不得小于60,代码如下:
  1.         private void fpSpread1_ColumnWidthChanging(object sender, FarPoint.Win.Spread.ColumnWidthChangingEventArgs e)
  2.         {
  3.             for (int i = 0; i < e.ColumnList.Count; i++)
  4.             {
  5.                 if ((e.ColumnList[i] as FarPoint.Win.Spread.ColumnWidthChangeExtents).FirstColumn == 0 && e.Width < 60)
  6.                 {
  7.                     fpSpread1.ActiveSheet.Columns[0].Width = 60;
  8.                     e.Cancel = true;
  9.                 }
  10.             }
  11.         }
复制代码
回复 使用道具 举报
lud
论坛元老   /  发表于:2012-6-20 18:02:00
5#
要是选择多个列拉宽,里面包含宽度为0的列,怎么让宽度为0的列不变
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-6-21 10:26:00
6#
回复 5楼lud的帖子

以下代码演示了:
1、如果只改变第一列的宽度,可以任意进行修改
2、如果同时改变多列时,其中包含第一列,此时第一列宽度不变

  1.     private float ColBWidth = 80;

  2.     private void Form1_Load(object sender, EventArgs e)
  3.     {
  4.         fpSpread1.Sheets[0].Columns[1].Width = ColBWidth;                          
  5.     }

  6.     private void fpSpread1_ColumnWidthChanged(object sender, FarPoint.Win.Spread.ColumnWidthChangedEventArgs e)
  7.     {
  8.         FarPoint.Win.Spread.ColumnWidthChangeExtents arg;
  9.         for (int i = 0; i < e.ColumnList.Count; i++)
  10.         {
  11.             arg = (e.ColumnList[i] as FarPoint.Win.Spread.ColumnWidthChangeExtents);
  12.                
  13.             // 如果第1列包含其中,就将第1列的宽度设置为固定值
  14.             if ((arg.FirstColumn <= 1 &amp;&amp; arg.LastColumn >= 1) &amp;&amp; (arg.LastColumn - arg.FirstColumn >0))
  15.             {
  16.                 fpSpread1.ActiveSheet.Columns[1].Width = ColBWidth;
  17.             }
  18.         }
  19.         ColBWidth = fpSpread1.Sheets[0].Columns[1].Width;
  20.     }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部