Spread for Windows Forms快速入门(3)---行列操作

简介:

开发人员可以定义用户与行和列的交互,如是否可以更改行或列的大小、是否可以移动行或列、冻结指定的行或列、在行或列中查找数据等。

更改行或列的大小

你可以允许用户重新调整表单中行或列的大小。 设置行的Resizable属性以允许用户重置行的大小,设置列的Resizable属性以允许用户重置列的大小。用户也可以双击列首与列首之间的分隔线以重新设置列的宽窄,以适应列首文字的宽度。

用户要重置行或列的大小,仅需鼠标左键单击行首或列首的边界线,拖拽至所需位置释放鼠标。 如下图所示,当左键被按下时,鼠标位置就会显示一个工具栏。 一定要点击列的右边缘或行的下边缘以改变列宽或行高。用户双击行与行之间的分隔线可以让行自动调整高度以显示行中最高文本, 双击列与列之间的分隔线可以让列自动调整宽度以显示列中最宽文本.

clip_image002

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

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

 


 
 
  1. fpSread.Sheets[0].RowHeader.Columns[0].Resizable = true

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

 


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

你可以使用SheetView类中的方法来决定行或列的大小可以被用户修改:

GetColumnSizeable

SetColumnSizeable

GetRowSizeable

SetRowSizeable

移动行或列

你可以允许用户拖拽移动行或列。设置AllowRowMove属性以允许用户移动行,设置AllowColumnMove 属性以允许用户移动列。如果你想允许用户移动多行或多列,需设置AllowRowMoveMultiple 或AllowColumnMoveMultiple 属性。

为移动行或列,用户仅需要左键按住行或列的头部,在行首(列首)区域内向前或向后拖拽,至所需位置放开鼠标。 (如果拖拽多行或多列,要事先选中欲操作的行或列)。 被移动的行或列会跟随鼠标指针显示一个透明的拷贝。如下图所示,第四列就被移到了左边。

clip_image004

你可以使用SheetView.MoveRow方法,编程实现重定位一行,也可以使用SheetView.RemoveRows 一次性移除多行。你可以使用SheetView.MoveColumn 方法,编程实现重定位一列。也可以使用SheetView.RemoveColumns方法 一次性移除多列。

通过对一个列区域进行Remove操作,你就能够一次性移除若干列。例如:

 


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

 

设置固定的(冻结的)行或列

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

下列图表显示了一个冻结的尾列和尾行在视图中的显示位置。

clip_image006

有关冻结行和列的属性包括:

FrozenRowCount

FrozenColumnCount

FrozenTrailingColumnCount

FrozenTrailingRowCount

冻结的行或列在运行时是不可以滚动的,但是在设计时,它们是可以滚动的。

尾冻结列和尾冻结行在每一页的底部和右部不会被重复打印,作为最后一行或最后一列打印一次。 前导行和前导列可以被重复打印。

设置表单的FrozenRowCount, FrozenColumnCount, FrozenTrailingColumnCount, 或FrozenTrailingRowCount 属性: 


 
 
  1. fpSpread1.Sheets[0].FrozenColumnCount = 2; 
  2.  
  3. fpSpread1.Sheets[0].FrozenRowCount = 2; 
  4.  
  5. fpSpread1.Sheets[0].FrozenTrailingColumnCount = 2; 
  6.  
  7. 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则不包含标题的单元格。 


 
 
  1. float width1 = fpSpread.Sheets[0].Columns[0].GetPreferredWidth(); 
  2.  
  3. float width2 = fpSpread.Sheets[0].GetPreferredColumnWidth(0); 
  4.  
  5. float width3 = fpSpread.Sheets[0].GetPreferredColumnWidth(0, true); 

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

 


     
     
  1. FarPoint.Win.Spread.Row row; 
  2.  
  3. FarPoint.Win.Spread.Column col; 
  4.  
  5. float sizerow; 
  6.  
  7. float sizercol; 
  8.  
  9. row = fpSpread1.ActiveSheet.Rows[0]; 
  10.  
  11. col = fpSpread1.ActiveSheet.Columns[0]; 
  12.  
  13. fpSpread1.ActiveSheet.Cells[0, 0].Text = "This text is used to determine the height and width."
  14.  
  15. sizerow = row.GetPreferredHeight(); 
  16.  
  17. sizecol = col.GetPreferredWidth(); 
  18.  
  19. row.Height = sizerow; 
  20.  
  21. col.Width = sizecol; 

 


本文转自 powertoolsteam 51CTO博客,原文链接:http://blog.51cto.com/powertoolsteam/629857,如需转载请自行联系原作者

相关文章
|
7月前
|
Windows
Windows 命令提示符(CMD)操作(七):扩展命令和功能
Windows 命令提示符(CMD)操作(七):扩展命令和功能
|
7月前
|
存储 数据安全/隐私保护 Windows
Windows 命令提示符(CMD)操作(五):磁盘和磁盘操作
Windows 命令提示符(CMD)操作(五):磁盘和磁盘操作
|
7月前
|
人工智能 机器人 C++
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
160 0
|
3月前
|
安全 C# 开发者
Windows Forms 应用开发:一分钟浅谈
本文将带领您从零开始,逐步掌握使用 C# 进行 Windows Forms 开发的技巧,包括创建首个应用、处理常见问题及优化方法。首先介绍如何搭建环境并编写基础代码,接着深入探讨控件使用与布局管理,解决控件重叠和响应式布局难题。最后讲解事件处理与多线程技术,确保长时间任务不阻塞界面,并安全更新 UI 状态,助您开发流畅的应用程序。
157 64
|
2月前
|
开发框架 .NET API
Windows Forms应用程序中集成一个ASP.NET API服务
Windows Forms应用程序中集成一个ASP.NET API服务
109 9
|
4月前
|
数据库 Windows
超详细步骤解析:从零开始,手把手教你使用 Visual Studio 打造你的第一个 Windows Forms 应用程序,菜鸟也能轻松上手的编程入门指南来了!
【8月更文挑战第31天】创建你的第一个Windows Forms (WinForms) 应用程序是一个激动人心的过程,尤其适合编程新手。本指南将带你逐步完成一个简单WinForms 应用的开发。首先,在Visual Studio 中创建一个“Windows Forms App (.NET)”项目,命名为“我的第一个WinForms 应用”。接着,在空白窗体中添加一个按钮和一个标签控件,并设置按钮文本为“点击我”。然后,为按钮添加点击事件处理程序`button1_Click`,实现点击按钮后更新标签文本为“你好,你刚刚点击了按钮!”。
348 0
|
5月前
|
Windows
【Windows】 Win10下报错:该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创建关联
【Windows】 Win10下报错:该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创建关联
700 1
|
6月前
|
缓存 Windows
Windows单屏操作快捷键知识分享
Alt+Tab 切换应用(切换界面) Win+数字键 切换任务栏的相对应用
72 5
|
5月前
|
Windows
【Windows】 Win10文件目录的删除,新建等需要手动刷新操作 亲测有效
【Windows】 Win10文件目录的删除,新建等需要手动刷新操作 亲测有效
194 0
|
6月前
|
存储 数据安全/隐私保护 Windows
逆向学习Windows篇:进程句柄操作详解
逆向学习Windows篇:进程句柄操作详解
263 0