Spread for Windows Forms快速入门(7)---单元格的交互操作

单元格的编辑模式

通常情况下,当终端用户双击单元格时,编辑控件将允许用户在该单元格中输入内容。在一个单元格中编辑的能力被称为编辑模式。一些属性和方法可以用来自定义编辑模式的使用。

当一个单元格处于编辑模式时,活动单元格将显示一个I型光标,如下图所示。当该单元格不处于编辑模式时,活动单元格将显示一个焦点长方形,如下图所示。




处于编辑模式下的单元格


被选中但是并不处于编辑模式下的单元格

一个单元格将进入编辑模式(开启编辑模式),当:

用户在单元格中输入内容

用户双击单元格

EditMode属性设置为true

一个单元格离开编辑模式(关闭编辑模式),当

用户按下回车键

用户激活了另外一个单元格

应用程序丢失焦点

EditMode属性设置为false

当一个单元格进入编辑模式,默认情况下,光标位于单元格中文本的末端。你可以设置EditModeReplace属性, 将光标改变为选择单元格中存在的文本。

如果你愿意,你可以使用EditModePermanent属性指定一个单元格, 当该单元格变为活动单元格时一直处于编辑模式。

你可以使用StartCellEditing 和 StopCellEditing方法启动和结束编辑模式。

锁定单元格

你可以锁定一个单元格或者一个区域内的单元格,并使之不能被终端用户编辑。 你也可以将锁定单元格的外观设置为其他样式,以便于用户分辨。

你可以使用单元格对象,列对象,行对象,或者交替行对象中的Locked 属性锁定单元格。你还可以为StyleInfo对象设置Locked属性,并将该风格应用到你希望锁定的单元格上。你还需要设置SheetView对象的 Protect属性锁定单元格。 Locked属性将锁定的单元格标识出来,设置Protect属性可以确定是否锁定这些单元格。对于标记为锁定的单元格,要锁定用户的输入,表单的 Protect属性必须设置为True(默认情况下为True),否则用户依然可以与单元格进行交互。

另外一种锁定单元格的方法是将单元格类型设置为文本单元格(使用TextCellType)并且将属性设置为只读(ReadOnly)。 这样,单元格就不可以编辑了。

确定表单的Protect属性被设置为True后,你可以锁定一些列的单元格并在某一行中解锁这些单元格。 示例代码如下:


fpSpread1.ActiveSheet.Protect = true;

fpSpread1.ActiveSheet.LockBackColor = Color.LightCyan;

fpSpread1.ActiveSheet.LockForeColor = Color.Green;

fpSpread1.ActiveSheet.Columns[0, 3].Locked = true;

fpSpread1.ActiveSheet.Cells[1,1,1,2].Locked = false;

单元格的合并

你可以将若干个单元格合并起来,创建一个合并区域,如下图所示。合并单元格用于创建一个大型的单元格,位于以前几个分列的单元格之上。举例来说,如果你创建了从B2到D3的单元格的合并区域,大型的单元格就占据了单元格B2至D3的空间。

控件分为四个部分:表角,列标题,行标题,以及数据区域。你可以在某一部分创建若干个合并区域,但是你不能创建横跨好几部分的区域。 举例来说,你不能将数据区域的单元格与行标题的单元格合并,并且你不能将列标题的单元格与表角的单元格合并。这里主要介绍在数据区域如何合并单元格。

当你创建单元格的合并区域时。合并区域的第一个单元格的数据(通常被称为锚点单元格)占据了合并区域的所有空白区。当你创建一个合并区域时,原来在各个单元格的数据依旧在合并区域的各个单元格中,但是不会显示出来。 合并区域仅仅是将数据隐藏了。 如果你将这一组单元格的合并区域移除,合并区域单元格的内容,先前被隐藏的内容,就会正常显示。通过调用AddSpanCell 方法,你可以创建一个单元格的合并区域。合并区域内的单元格种类不会发生改变。合并的单元格采用合并区域中最左边的单元格类型。

调用GetCellSpan方法返回一个单元格是否在合并区域中的判定值。并且如果此单元格在合并区域中,该方法就会返回CellRange对象,该对象包含锚点单元格的行数和列数, 以及合并区域中的行列数。

通过调用RemoveSpanCell方法你可以将合并区域从一组单元格区域中移除。你可以通过此方法移除单元格合并区域,指定合并区域的锚点单元格,以便移除合并区域。当你想要移除一个合并区域时,以前显示在各个单元格中的数据又重新显示在你的眼前。单元格的数据从未没移除,只是被合并区域隐藏而已。

下面的示例代码定义了一些内容然后合并了六个相连的单元格。


// Create some content in two cells.

fpSpread1.ActiveSheet.Cells[1,1].Text = "These six cells are spanned.";

fpSpread1.ActiveSheet.Cells[2,2].Text = "This is text in 2,2.";

// Span six cells including the ones with different content.

fpSpread1.ActiveSheet.AddSpanCell(1, 1, 2, 3);

使用拖拽操作填充单元格

在使用Spread进行应用程序开发时,你可以允许最终用户从一个或若干个单元格的区域内拖拽数据到另外一个单元格或者另外一组单元格内。对于选中的单元格或一组单元格 ,你也可以将其他的单元格填充到一行 (或者若干行如果超过一列被选中)或者一列(或者若干列如果超过一行被选中)。

这里显示的示例从原始选中的单元格中向一列中填充了几个单元格。

使用FillDirection枚举类型,你可以自定义填充的方向。

下面的示例代码对控件进行了设置以便允许拖拽填充特性。


fpSpread1.AllowDragFill = true;

 

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

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

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

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

Spread for Windows Forms快速入门(4)---常用的单元格类型(上)

Spread for Windows Forms快速入门(5)---常用的单元格类型(下)

Spread for Windows Forms快速入门(6)---定义单元格的外观

 

相关阅读:

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

Spread Studio 10.0v1 发布

SpreadJS 10.0v1 发布

 

时间: 2024-07-28 18:22:46

Spread for Windows Forms快速入门(7)---单元格的交互操作的相关文章

Spread for Windows Forms快速入门(8)---单元格中用户动作触发的事件

这篇文章概括介绍了单元格的哪些事件是由控件的用户动作触发的.虽然它没有全面地列出的用户可能执行的每一个动作,但是它详细地描述了用户所使用的大部分普通操作所引发的事件. 因为某些动作一直出现,或者某些动作反复出现, 我们就在列表中放弃了这部分动作.举例来说,这些列表并不包括MouseMove, MouseHover, MouseEnter, MouseLeave, Invalidated和CursorChanged事件. 如果你想在此基础上做进一步的研究,我们提供了一个示例以便你与Spread控件

Spread for Windows Forms快速入门(11)---数据筛选

Spread支持开发人员自定义筛选数据的用户体验.基于行数据筛选,你可以允许用户分列进行筛选,从而仅显示符合了下拉列表中条件的行的数据,或者根据筛选结果更改行的外观.你可以使用默认的筛选方式,或者你可以从实际出发,自定义筛选器的每一个方面. 允许用户进行行筛选 默认情况下,表单禁止用户对表单的行进行筛选.你可以开启这一特性, 允许用户在所有列或者指定的列中进行行筛选.根据你要隐藏被筛除的列,还是更改列的外观,分别使用HideRowFilter类或StyleRowFilter类. 使用列Allow

Spread for Windows Forms快速入门(14)---文件操作

你可以将数据从Spread中存到几种不同类型的文件中或者可以在Spread中打开几种不同类型的数据文件.通过使用相应的代码,你可以将整个控件,某个特定的表单,或者某个特定单元格区域中的数据保存为几种不同的文件类型或者流.类似的,你可以允许用户对某几种文件类型进行文件操作. 保存到Excel文件 你可以使用ExcelSaveFlags枚举类型的UseOOXMLFormat选项,将数据保存到Excel格式文件(BIFF8 格式)或者Excel 2007 XML 格式(xlsx).默认的,当你保存为E

Spread for Windows Forms快速入门(15)---使用 Spread 设计器

通过 Spread 设计器用户可以快速地对 Spread 控件进行设计.无论用户是正在做一个关于 Spread 控件特性的原型研究,还是对于一个已经存在的 Spread 控件在某些方面进行进一步的定制,Spread 设计器专有的图形界面可节省大量的时间和精力.Spread 设计器允许用户添加数据,同时设置控件属性,而且还包括那些在 Visual Studio 中无法设置的属性.用户可以同时设置运行时和设计时属性,大多数情况下用户可以在应用设置之前预览效果,设置完成后,就可以将所有的设置应用到 S

Spread for Windows Forms快速入门(9)---使用公式

Spread的公式计算引擎支持300多种内置函数,并支持通过内置函数和运算符来自定义公式.支持的函数包括日期.时间函数.工程计算函数.财务计算函数.逻辑函数.数学和三角函数.统计函数.文本函数等. 公式计算引擎支持单元格的引用.表单的交叉引用.循环引用.函数嵌套等. 放置公式在单元格中 你可以添加一个公式到一个单元格或单元格区域内. 你还可以向一行或者一列中所有的单元格添加公式.该公式是一个具有说明公式字符串的公式,通常是包含一个函数,运算符和常数的集合体. 当把一个公式分配到行或列的时候,这个

Spread for Windows Forms快速入门(16)---用Spread设计器创建和编辑图表

Spread支持85种丰富多彩的图表效果.可以在Spread设计器中基于工作表的数据直接生成图表,操作简单.同时,软件人员还可以在Visual Studio设计环境中定制图表的所有元素,包括标题.序列.轴.样式.图例等.这一篇介绍如何用Spread设计器创建和编辑图表. 准备图表的数据 首先要启动Spread设计器.你可以在 Visual Studio .NET 中鼠标右键点击 Spread 控件,在弹出菜单中选择 Spread 设计器:也可以在安装菜单中启动独立运行的Spread 设计器. 在

Spread for Windows Forms快速入门(10)---绑定到数据库

下面的教程将带你创建一个工程, 并将Spread控件绑定到一个数据库. 在这个教程中,主要的步骤为: 1. 将Spread添加到一个数据绑定工程中 2. 设置数据库连接 3. 指定要使用的数据 4. 创建数据集 5. 把Spread控件绑定到数据库 6. 通过改变单元格类型改善显示效果   将Spread添加到一个数据绑定工程中 打开一个新的Visual Studio.NET工程.将工程命名为databind.将工程中的窗体文件命名为binding.cs(或.vb). 将FpSpread控件添加

Spread for Windows Forms快速入门(12)---数据分组(Outlook风格)

你可以设置的显示将行分组变成 OUTLOOK样式.对于大量的数据来说,这样会以用户需要的顺序显示数据.用户可以选择要进行的排序(以列为依据),然后控件会以此为依据将行组织起来,分级地显示数据.既可以通过双击列首的方式,也可以通过点击和拖拽此列进入页面头部分组栏的方式 选中要进行分组的列. 允许用户使用行分组 默认情况下,不允许用户在表单中进行行分组. 你可以开启这项特性,以便对整个表单的行进行分组.除了允许进行分组之外,你还需要允许移动列,因为用户通过使用点击和向分组栏中拖拽列首的方式进行分组,

Spread for Windows Forms快速入门(13)---数据排序

开发人员可以对Spread表单中的行和列进行自动排序操作,如根据指定的列,以升序方式自动排序表单中的数据.同时,也可以显示排序指示器.这些操作不会影响数据模型 仅仅涉及数据如何显示. 允许用户自动地对行进行排序 你可以设置表单以允许用户在列首被点击的情况下使用自动排序这一功能.当列首第一次被点击(被选中)时,未排序的图标就会显示.第二次点击时就会显示排序图标并且会将列进行排序.如果用户在相同的列上 连续点击,那么排序的方向就会被反转.这并不影响数据模型,只会影响数据如何显示.下面的图表显示了未排