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

简介:

单元格类型定义了在单元格中呈现的信息的类型,以及这种信息如何显示,用户如何与其进行交互。单元格类型可以被赋给单个的单元格,整行或者整列。

用户可以使用两种不同的单元格类型对表单中的单元格进行设置: 一种是可以简单地关联于单元格的文本格式,另一种就是显示控件或者图形化信息。我们在本篇介绍常用的文本单元格类型,下一篇介绍常用的图形单元格类型。

通用单元格 GeneralCellType

对于表单中的单元格而言,通用单元格是默认的单元格类型。 除非你指定了其他的单元格类型,控件通常会默认将通用单元格类型赋给单元格。通用单元格可以被用来作为键入文本或数字的单元格,在这里格式并不重要或者这里的数据类型不依赖于特定的数据类型。

下面的示例将一个单元格设为一个通用单元格。

FarPoint.Win.Spread.CellType.GeneralCellType gnrlcell = new FarPoint.Win.Spread.CellType.GeneralCellType();

fpSpread1.ActiveSheet.Cells[1, 1].CellType = gnrlcell;

文本单元格TextCellType

文本单元格是最常用的单元格类型之一,用于显示文本或者将单元格内容当作文本显示。你也可以指定是否所有文本都以小写形式,大写格式,或者普通的CharacterCasing属性格式显示。CharacterSet属性授权你指定文本为仅数字,仅字母,数字和字母,或者任何ASCII字符。

通过代码设置文本单元格的基本步骤和示例代码如下:

通过创建一个 TextCellType 类的实例定义一个文本单元格。

设置文本单元格的属性。

当用户输入不可用时创建一个显示给用户的信息。

通过设置一个单元格,单元格范围,一行,一列,或者样式的CellType属性为TextCellType 对象,将文本单元格类型赋给一个单元格或者一组单元格。

FarPoint.Win.Spread.CellType.TextCellType tcell = new FarPoint.Win.Spread.CellType.TextCellType();

tcell.CharacterCasing = CharacterCasing.Upper;

tcell.CharacterSet = FarPoint.Win.Spread.CellType.CharacterSet.Ascii;

tcell.MaxLength = 30;

tcell.Multiline = true;

fpSpread1.ActiveSheet.Cells[0, 0].Text = "This is a text cell. ";

fpSpread1.ActiveSheet.Cells[0, 0].CellType = tcell;

数字单元格NumberCellType

你可以使用一个数字单元格NumberCellType用以显示一个十进制的数字,整数或者小数,下面的主题涉及了数字单元格的格式化以及计算的主要内容。

设置精度

典型的情况是,数字使用双精度浮点数进行计算和存储,这样精度大约在15个数位左右。 单元格可以根据需求格式化为不同的小数位数。 例如,下列的代码可以计算单元格区域A1到A5的区域的值的总和,并且将结果显示在A6单元格中 存储在A6单元格中的数值将会有足够的精确度(达到了双精度浮点数的上限),但是显示在A6单元格中的文本将会取为其最近的一位小数的值。

NumberCellType nmbcell = new NumberCellType();

nmbcell.DecimalPlaces = 1;

fpSpread.Sheets[0].Cells[5,0].CellType = ct; fpSpread.Sheets[0].Cells[5,0].Formula = "SUM(A1:A5)";

格式化若干数字

你可以自定义数字单元格的显示方式,就像这张属性表中总结的那样,显示为一个整数或者有若干格式化特定的小数。下面的示例给出了这些属性的使用方法。

属性

描述

DecimalPlaces

在数字的显示中设置小数的位数。

DecimalSeparator

获取或设置小数点分隔符。

FixedPoint

对定点数的显示来说,在数字的小数部分设置是否将零显示为占位符。

LeadingZero

获取或设置是否显示前导的零。

MaximumValue

获取或设置用户可以输入的最大值。

MinimumValue

获取或设置用户可以输入的最小值。

NegativeFormat

获取或设置负数的格式如何进行显示。

NegativeRed

获取或设定负数是否显示为红色。

OverflowCharacter

如果数字不符合显示的宽度,获取和设置替换数据的显示字符。

Separator

获取或设置用于分割千以上的数值的字符。

ShowSeparator

获取或设置是否显示千位分隔符。

下面的示例通过使用预先定义的格式化属性指派 NumberCellType 对象,对某个单元格设置成为具有某种格式的数字单元格。

FarPoint.Win.Spread.CellType.NumberCellType nmbrcell = new FarPoint.Win.Spread.CellType.NumberCellType();

nmbrcell.DecimalSeparator = ",";

nmbrcell.DecimalPlaces = 5;

nmbrcell.LeadingZero = FarPoint.Win.Spread.CellType.LeadingZero.UseRegional;

nmbrcell.MaximumValue = 500.000;

nmbrcell.MinimumValue = -10.000;

fpSpread1.ActiveSheet.Cells[1, 1].CellType = nmbrcell;

显示分数

数字单元格可以以分数格式显示数值,所以0.01可以显示为1/100。设置数字单元格的FractionMode属性以便以分数格式显示数值。你可以向一个单元格中键入0.01或者你可以键入1/100。两种情况都会显示为1/100。你可以使用FractionDenominatorPrecision枚举类型(例如要将分数显示为若干个四分之一,1/4等等)或者使用FractionDenominatorDigits属性设置分母的位数。下面这张表列出了所有与数字单元格相关的分数属性。

属性

描述

FractionMode

设置是否将数值显示为分数。

FractionConvertWholeNumbers

当数值显示为分数时,设置是否将整数部分转化为分数。

FractionCustomFormat

使用自定义的格式设置数值如何显示。要使用自定义的格式,请设置FractionDenominatorPrecision以便于自定义。

FractionDenominatorDigits

当数据显示为分数时,设置数字的位数。

FractionDenominatorPrecision

当数据显示为分数时,设置分数的精度。

FractionRenderOnly

当数据显示为分数时,设置是否允许分数处于编辑模式。

FarPoint.Win.Spread.CellType.NumberCellType frac = new FarPoint.Win.Spread.CellType.NumberCellType();

frac.FractionMode = true;

frac.FractionConvertWholeNumbers = false;

frac.FractionDenominatorPrecision = FarPoint.Win.Spread.CellType.FractionDenominatorPrecision.Custom;

frac.FractionDenominatorDigits = 3;

fpSpread1.ActiveSheet.Columns[0].CellType = frac;

fpSpread1.ActiveSheet.Columns[1].CellType = frac;

fpSpread1.ActiveSheet.Cells[0, 0].Value = 5.01;

另外一种设置分数显示的方法是(使用FractionCustomFormat属性)设置自定义格式设置一个数值。默认的值是“# ???/???”其中格式为一个整数(#)伴随着一个三位的分数 ( / )。 斜杠后面的问号决定了分母的数位(可以有一到十五位的精度,因为15位的精度是最大的)。自定义格式,你也可以 指定分母,比如“# ???/100”或者“# ??/64”。如果FractionConvertWholeNumber被设置为真,那么就不会显示为整数部分并且 整个数字显示为一个分数。

这个示例设置一个单元格以分数形式显示数据,值5.01的显示结果为5 1/100:

使用Spin按钮

默认情况下,Spin按钮不显示,但是你可以在单元格处于编辑模式时在单元格内部显示Spin按钮。 你可以使用以单词“Spin”开头的NumberCellType的若干属性设置各种不同的Spin函数。

百分比单元格PercentCellType

你可以使用一个百分比单元格以便将数据显示为百分数并且限制输入为百分数的值。默认情况下,在一个百分比单元格中,如果你在运行状态双击处于编辑模式下的单元格,就会弹出一个计算器。你可以指定显示在确定键和取消键上的文本信息。

下面的示例将一个单元格设置成为一个百分数单元格并且显示了一个简写(PRCNT)而不是百分号(%)。

FarPoint.Win.Spread.CellType.PercentCellType prctcell = new FarPoint.Win.Spread.CellType.PercentCellType();

prctcell.PercentSign = "PRCNT";

prctcell.PositiveFormat = FarPoint.Win.Spread.CellType.PercentPositiveFormat.PercentSignBeforeWithSpace;

fpSpread1.ActiveSheet.Cells[1, 1].CellType = prctcell;

默认情况下,Spin按钮不显示,但是当单元格处于编辑模式时,你可以使用单元格内部的Spin按钮。 你可以使用以单词“Spin”开头的PercentCellType的若干属性设置各种不同的微调函数。

日期时间单元格DateTimeCellType

你可以设置一个单元格用于显示日期和时间,也可以指定要显示的日期和时间的格式。

在Windows环境中,默认值使用区域化的设置或者区域化的选项。你可以使用几种属性指定其格式。如果一个日期时间单元格显示的日期和时间使用长日期和时间格式,并且当前日期和时间是“10/29/2002 11:10:01”,文本属性返回“周二,十月,29日,2002年 11:10:01 上午”。值属性返回所述的日期时间的对象。

默认情况下,在日期时间单元格中,如果你在运行时双击处于编辑状态下的单元格,就会弹出一个日历(或者时钟)。你可以决定是否显示这些,并且你可以指定显示在确定和取消按钮上的文本。

下面的示例代码在第二行第二列的单元格中显示一个短格式的日期和时间:

FarPoint.Win.Spread.CellType.DateTimeCellType datecell = new FarPoint.Win.Spread.CellType.DateTimeCellType();

datecell.DateSeparator = " | ";

datecell.TimeSeparator = ".";

datecell.DateTimeFormat = FarPoint.Win.Spread.CellType.DateTimeFormat.ShortDateWithTime;

fpSpread1.ActiveSheet.Columns[1].Width = 175;

fpSpread1.ActiveSheet.Cells[1, 1].CellType = datecell;

fpSpread1.ActiveSheet.Cells[1, 1].Value = System.DateTime.Now;

货币单元格CurrencyCellType

你可以使用货币单元格设置一个单元格用以显示货币的值。一个货币单元格显示了数字化的货币值,使用了一种你可以进行自定义的货币符号,分隔符等的格式,包括:

货币符号(并且决定是否显示)

分隔符(并且决定是否显示)

十进制符号

是否显示一个主导的零

正数指示器(并且决定是否显示它)

负数指示器(并且决定是否显示它)

默认情况下,在货币单元格中,如果你在运行时双击处于编辑状态的单元格,就会显示一个弹出的计算器。你可以决定是否允许他显示,并且你可以指定显示在“确定”和“取消”按钮上的文本信息。 你还可以设置可以输入的最小和最大值, 以便用户对其输入进行验证。

下面的示例代码设置了一个美元的货币单元格并设置了一定的格式:

FarPoint.Win.Spread.CellType.CurrencyCellType currcell = new FarPoint.Win.Spread.CellType.CurrencyCellType();

currcell.CurrencySymbol = "US$";

currcell.DecimalSeparator = ":";

currcell.DecimalPlaces = 8;

fpSpread1.ActiveSheet.Cells[1,1].CellType = currcell;

在默认情况下,Spin微调按钮是不显示的,但是你可以在单元格的边上显示微调按钮(此时单元格处于编辑模式)。你可以使用以字符Spin开头的CurrencyCellType属性设置不同的微调函数。



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

相关文章
|
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
|
3月前
|
Windows
[原创]用MASM32编程获取windows类型
[原创]用MASM32编程获取windows类型
|
4月前
|
数据库 Windows
超详细步骤解析:从零开始,手把手教你使用 Visual Studio 打造你的第一个 Windows Forms 应用程序,菜鸟也能轻松上手的编程入门指南来了!
【8月更文挑战第31天】创建你的第一个Windows Forms (WinForms) 应用程序是一个激动人心的过程,尤其适合编程新手。本指南将带你逐步完成一个简单WinForms 应用的开发。首先,在Visual Studio 中创建一个“Windows Forms App (.NET)”项目,命名为“我的第一个WinForms 应用”。接着,在空白窗体中添加一个按钮和一个标签控件,并设置按钮文本为“点击我”。然后,为按钮添加点击事件处理程序`button1_Click`,实现点击按钮后更新标签文本为“你好,你刚刚点击了按钮!”。
349 0
|
6月前
|
Java 大数据 Scala
Scala快速入门--Scala环境搭建【Windows10】图解
Scala快速入门--Scala环境搭建【Windows10】图解
89 0
|
7月前
|
运维 安全 Linux
使用阿里云搭建幻兽帕鲁服务器操作系统类型Windows和Linux有区别吗?
使用阿里云搭建幻兽帕鲁服务器操作系统类型Windows和Linux有区别吗?性能有差异?同配置的游戏服务器,如4核16G或8核32G配置等,选择Windows和Linux操作系统差异不太大,如果非要对比的话,Linux系统相对Windows更少占用计算资源,当然如果对Linux不熟悉的话,可以选择Windows。另外,即便是幻兽帕鲁服务器创建成功后,也是可以免费修改操作系统的
209 1
|
监控 C# Windows
内网桌面监控软件中的远程控制功能实现(基于C#和Windows Forms)
近年来,随着远程办公的兴起,对内网桌面监控软件的需求逐渐增加。本文将探讨如何通过C#和Windows Forms实现内网桌面监控软件中的远程控制功能,并在结尾部分介绍监控到的数据如何自动提交到网站。
396 0
|
1月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
|
1月前
|
监控 安全 网络安全
使用EventLog Analyzer日志分析工具监测 Windows Server 安全威胁
Windows服务器面临多重威胁,包括勒索软件、DoS攻击、内部威胁、恶意软件感染、网络钓鱼、暴力破解、漏洞利用、Web应用攻击及配置错误等。这些威胁严重威胁服务器安全与业务连续性。EventLog Analyzer通过日志管理和威胁分析,有效检测并应对上述威胁,提升服务器安全性,确保服务稳定运行。