SetText 方法和 SetValue 方法的比较

发布时间:2012/11/13 00:11 发布者:葡萄城产品团队

返回博客中心

Spread 使用过程中,我们会发现有很多方法的功能是相同的。它们是故意被设置成这样吗?它们之间有什么区别?下面我们将对 SetText 和 SetValue 进行同样的设置去测试它们之间的异同。在进行测试之前,让我先熟悉下 Text 属性和 SetText 方法。实际上它们的功能是相同的,只不过一个是属性,一个是方法。SetValue 和 Value 属性也是同样。但是,SetText 方法和 SetValue 方法之间究竟有什么不同呢?
下面,让我们看四行代码:

 
fpspread1.ActiveSheet.Cells(0,0).Text="hello";

fpspread1.ActiveSheet.SetText(0,0,"hello");

fpspread1.ActiveSheet.Cells(0,0).Value=19;

fpspread1.ActiveSheet.SetValue(0,0,19);
复制代码

第一行和第二行代码功能是相同的,第三行和第四行代码功能也是相同的。现在,让我们比较一下第二行和第四行的不同。

1. 正如我们所理解的那样,SetText 方法和 SetValue 方法都是给单元格设值的方法。"Text" 实际上定义在单元格中显示的内容,而 "Value" 实际上定义在单元格的 DataModel 中存储的内容。如果我们改变它们(Text 或者 Value),这两个值都将自动的改变。简单的说,如果我改变单元格的 Text 属性,Value 属性也随着改变,反之亦然。但是,当我说 Text 和 Value 之间存在区别时请不要惊讶。

2.SetText 方法只允许你给单元格设置一个字符串类型的值,而 SetValue 方法允许你给单元格设置任何类型的值。

3. SetValue 的内部处理过程要比 SetText 的处理过程更加迅速。SetValue 方法直接DataModel 交互存储单元格值,而 SetText 方法要先触发关于编辑和校验的事件更新显示界面,然后再存储单元格的值。所以,如果你想让 Spread 运行的更快,请使用 SetValue 或 Value 代替 SetText 或 Text。

4.关于 Text 和 Value 有一个有趣的事情。如果整个表单的单元格都没有文本去显示,Text 和Value 属性都被设置成 null。但是,当我们进入某个单元格的编辑模式时,这两个属性就改变了。如果不输入任何值,Text 属性被设置成空字符串,而 Value 属性仍然是空值。如果我们输入某些值,这两个属性都会获得我们输入的那个值。


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网