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

简介: 开发人员可以定义用户与行和列的交互,如是否可以更改行或列的大小、是否可以移动行或列、冻结指定的行或列、在行或列中查找数据等。 更改行或列的大小 你可以允许用户重新调整表单中行或列的大小。 设置行的Resizable属性以允许用户重置行的大小,设置列的Resizable属性以允许用户重置列的大小。

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

更改行或列的大小

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

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

clip_image002

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

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

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

  

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

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

  


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

SetColumnSizeable

GetRowSizeable

SetRowSizeable

移动行或列

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

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

clip_image004

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

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

 

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

 

  

 

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

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

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

clip_image006

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

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.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;

 

  

附:Spread for Windows Forms快速入门系列文章

Spread for Windows Forms快速入门(1)---开始使用Spread

Spread for Windows Forms快速入门(2)---设置Spread表单

 

相关阅读:

Spread for Windows Forms 7新功能使用指南

Spread Studio 10.0v1 发布

SpreadJS 10.0v1 发布

 

相关文章
|
移动开发 人工智能 小程序
springboot智慧导诊系统源码:可扩展至H5、小程序、app等多端
智能导诊系统可为患者提供线上挂号智能辅助服务,患者根据提示手动输入自己的基本症状,通过智能对话方式,该系统会依据大数据一步步帮助患者“诊断”,并最终推荐就医的科室和相关专家。患者可自主选择,实现“一键挂号”。
362 0
springboot智慧导诊系统源码:可扩展至H5、小程序、app等多端
|
Java
在 Java 中如何比较日期?
在 Java 中有多种方法可以比较日期,日期在计算机内部表示为(long型)时间点——自1970年1月1日以来经过的毫秒数。在Java中,Date是一个对象,包含多个用于比较的方法,任何比较两个日期的方法本质上都会比较日期的时间。
1789 0
|
Shell 网络安全
mac启动时自动添加多个ssh私钥
mac启动时自动添加多个ssh私钥
|
Linux
centos7系统永久更改主机名(hostname)的几种方法
在使用centos7系统vps或服务器时,一般都会有一个主机名(hostname),都是主机开通时系统默认分配的。虽然主机名的用处不是很大,不更改也没啥事,但如果看着不顺眼的话,也是可以更改的。下面简单介绍下centos7永久更改主机名的简单方法。
27166 0
centos7系统永久更改主机名(hostname)的几种方法
|
人工智能 自然语言处理 Java
本地安装使用ModelScope
本地安装使用ModelScope
6134 1
本地安装使用ModelScope
|
Java Maven
云服务器——安装Maven
云服务器——安装Maven
733 0
|
运维 安全 数据安全/隐私保护
堡垒机的使用方法:如何使用堡垒机?
堡垒机在安全运维中的主要功能是,通过堡垒机进行事前资源授权,事中录像监控,事后指令审计,来保障自身数据安全,那么我们要如何使用堡垒机? 从安全运维的角度来看,资源授权满足了主机层面的安全管理需求,但是一旦登录到主机后,团队成员便可对该台主机进行任何的操作,所以团队成员在登录主机前、后,都处于行云管家堡垒机安全监管之下。
5512 0
|
7天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!