设为首页 收藏本站
查看: 749|回复: 0

[经验分享] Spread for Windows Forms快速入门(3)---行列操作

[复制链接]

尚未签到

发表于 2018-6-15 13:16:45 | 显示全部楼层 |阅读模式
  开发人员可以定义用户与行和列的交互,如是否可以更改行或列的大小、是否可以移动行或列、冻结指定的行或列、在行或列中查找数据等。
  更改行或列的大小
  你可以允许用户重新调整表单中行或列的大小。 设置行的Resizable属性以允许用户重置行的大小,设置列的Resizable属性以允许用户重置列的大小。用户也可以双击列首与列首之间的分隔线以重新设置列的宽窄,以适应列首文字的宽度。
  用户要重置行或列的大小,仅需鼠标左键单击行首或列首的边界线,拖拽至所需位置释放鼠标。 如下图所示,当左键被按下时,鼠标位置就会显示一个工具栏。 一定要点击列的右边缘或行的下边缘以改变列宽或行高。用户双击行与行之间的分隔线可以让行自动调整高度以显示行中最高文本, 双击列与列之间的分隔线可以让列自动调整宽度以显示列中最宽文本.
DSC0000.jpg

  默认情况下,用户可以修改数据区域的行或列的大小,但是行首和列首的大小是不允许被修改的。 在代码中,你可以重置行首或列首的大小,不仅仅局限于数据区域的行或列。你也可以使用Resizable属性覆盖默认的行为,阻止用户改变大小。
  下面的代码会允许行首中的一列改变大小:
  


  • fpSread.Sheets[0].RowHeader.Columns[0].Resizable = true;
  

  下面的代码允许行首中的全部列改变大小:
  


  • fpSread.Sheets[0].RowHeader.Columns.Default.Resizable = true;
  

  你可以使用SheetView类中的方法来决定行或列的大小可以被用户修改:
  GetColumnSizeable
  SetColumnSizeable
  GetRowSizeable
  SetRowSizeable
  移动行或列
  你可以允许用户拖拽移动行或列。设置AllowRowMove属性以允许用户移动行,设置AllowColumnMove 属性以允许用户移动列。如果你想允许用户移动多行或多列,需设置AllowRowMoveMultiple 或AllowColumnMoveMultiple 属性。
  为移动行或列,用户仅需要左键按住行或列的头部,在行首(列首)区域内向前或向后拖拽,至所需位置放开鼠标。 (如果拖拽多行或多列,要事先选中欲操作的行或列)。 被移动的行或列会跟随鼠标指针显示一个透明的拷贝。如下图所示,第四列就被移到了左边。
DSC0001.jpg

  你可以使用SheetView.MoveRow方法,编程实现重定位一行,也可以使用SheetView.RemoveRows 一次性移除多行。你可以使用SheetView.MoveColumn 方法,编程实现重定位一列。也可以使用SheetView.RemoveColumns方法 一次性移除多列。
  通过对一个列区域进行Remove操作,你就能够一次性移除若干列。例如:
  


  • fpSpread1.Sheets(0).Columns(1,5).Remove()
  

  设置固定的(冻结的)行或列
  你可以冻结表单中的行或列(使其不可滚动)。 你可以冻结任意个表单顶部的行,使其成为前导行,你也可以冻结左侧任意多个列,使其成为前导列 你也可以冻结任意多个表单底部的行,或最右边的列。无论鼠标如何滚动,冻结的前导行或前导列都会在视图的顶部或最左端显示。无论鼠标如何滚动,冻结的尾行或尾列都会在视图的底部或最右端显示。
  下列图表显示了一个冻结的尾列和尾行在视图中的显示位置。
DSC0002.jpg

  有关冻结行和列的属性包括:
  FrozenRowCount
  FrozenColumnCount
  FrozenTrailingColumnCount
  FrozenTrailingRowCount
  冻结的行或列在运行时是不可以滚动的,但是在设计时,它们是可以滚动的。
  尾冻结列和尾冻结行在每一页的底部和右部不会被重复打印,作为最后一行或最后一列打印一次。 前导行和前导列可以被重复打印。
  设置表单的FrozenRowCount, FrozenColumnCount, FrozenTrailingColumnCount, 或FrozenTrailingRowCount 属性:
  


  • fpSpread1.Sheets[0].FrozenColumnCount = 2;

  • fpSpread1.Sheets[0].FrozenRowCount = 2;

  • fpSpread1.Sheets[0].FrozenTrailingColumnCount = 2;

  • fpSpread1.Sheets[0].FrozenTrailingRowCount = 2;
  

  

  查找含有数据的行或列
  当使用表单工作时,你可以利用表单类中的各种不同成员来找出行或列最后一个或者格式的索引。你可以使用如下由表单所提供的方法。
  GetLastNonEmptyColumn 方法
  GetLastNonEmptyRow 方法
  你可以通过如下属性来得到包含数据的行或列的数目:
  NonEmptyColumnCount属性
  NonEmptyColumnCount属性
  调整行列尺寸以适应数据大小
  根据单元格中数据的长度和宽度,你可以调整列宽或行高。最大数据所在行或列的尺寸称为首选尺寸。利用首选尺寸的方法有:
  Row类中的GetPreferredHeight方法
  Column类中的GetPreferredWidth方法
  SheetView类中的 GetPreferredRowHeight方法
  SheetView类中的 GetPreferredColumnWidth方法
  SheetView类中的 GetPreferredCellSize方法
  Row类中的GetPreferredHeight方法和 Column类中的GetPreferredWidth方法总是包括标题的单元格。对于重载了GetPreferredColumnWidth方法的表单类,当重载允许你选择包含或不包含标题的单元格时,始终会有一个重载包含标题的单元格。在下面的这段代码中,width1和width2包含了标题单元格而width3则不包含标题的单元格。
  


  • float width1 = fpSpread.Sheets[0].Columns[0].GetPreferredWidth();

  • float width2 = fpSpread.Sheets[0].GetPreferredColumnWidth(0);

  • float width3 = fpSpread.Sheets[0].GetPreferredColumnWidth(0, true);
  

  

  使用多种不同方法来设置列宽和行高:

  


  • FarPoint.Win.Spread.Row row;

  • FarPoint.Win.Spread.Column col;

  • float sizerow;

  • float sizercol;

  • row = fpSpread1.ActiveSheet.Rows[0];

  • col = fpSpread1.ActiveSheet.Columns[0];

  • fpSpread1.ActiveSheet.Cells[0, 0].Text = "This text is used to determine the height and width.";

  • sizerow = row.GetPreferredHeight();

  • sizecol = col.GetPreferredWidth();

  • row.Height = sizerow;

  • col.Width = sizecol;
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-524249-1-1.html 上篇帖子: windows movie maker无法保存影片问题的解决方法 下篇帖子: 如何挽救崩溃的Windows XP操作系统
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表