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

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

更改行或列的大小

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

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

默认情况下,用户可以修改数据区域的行或列的大小,但是行首和列首的大小是不允许被修改的。 在代码中,你可以重置行首或列首的大小,不仅仅局限于数据区域的行或列。你也可以使用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 属性。

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

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

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

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

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

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

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

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

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表单

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏琦小虾的Binary

Windows系统下远程连接BeagleBone Black开源电路板桌面

BeagleBone Black(简称BBB)中的文件虽然可以通过SSH终端通过命令行进行操作,但在桌面环境中进行操作可能会更方便一些。BBB提供microHD...

33490
来自专栏惨绿少年

在windows上搭建镜像yum站的方法(附bat脚本)

方法一:支持rsync的网站  对于常用的centos、Ubuntu、等使用官方yum源在 http://mirrors.ustc.edu.cn 都存在镜像。 ...

36900
来自专栏数据库

Windows上Mysql安装教程

将安装包解压 ? 解压目录 ? 鼠标右键“我的电脑”,弹出“快捷菜单”,选择“属性”,打开“环境变量”对话框 ? 或者打开“运行”窗口,输入“sysdm.cpl...

31000
来自专栏IMWeb前端团队

windows 上优雅的安装 node 和 npm

我一直觉得我掌握的这份优雅是被许多人所知道了,直到我发现小伙伴们都下载 .msi 来装 node ,我心中的优雅感终于压制不住。 .msi 安装 windows...

23370
来自专栏梦里茶室

Ubuntu安装与初始配置

适用于Ubuntu版本 14.04/16.04LTS 64位 先上图 ? 双系统安装 划分空闲磁盘,U盘安装ubuntu 重点看安装ubuntu时的磁盘分区...

34590
来自专栏琦小虾的Binary

Windows系统下通过PSCP传输文件至BeagleBone Black

参考地址:http://jingyan.eeboard.com/article/73573 最近笔者正在做的项目是在BeagleBone Black(简称BBB...

34690
来自专栏惨绿少年

windows 上rsync客户端使用方法

1.1 获取 windows上实现rsync的软件(cwRsync) cwRsync是Windows 客户端GUI的一个包含Rsync的包装。您可以使用cwRs...

98100
来自专栏IMWeb前端团队

跨平台web调试代理工具--whistle

whistle是基于Node实现的跨平台web调试代理工具,支持windows、mac、linux等所有安装了Node的操作系统,可以部署在本地机器、虚拟机或远...

26660
来自专栏史上最简单的Spring Cloud教程

javascript入门笔记8-window对象

History 对象 history对象记录了用户曾经浏览过的页面(URL),并可以实现浏览器前进与后退相似导航的功能。 注意:从窗口被打开的那一刻开始记录,...

206100
来自专栏康怀帅的专栏

WSL 快速搭建 LNMP 环境

Windows Subsystem for Linux(简称 WSL )是一个为在 Windows 10 上能够原生运行 Linux 二进制可执行文件(ELF ...

1.6K10

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励