Richard.Ma 发表于 2020-9-2 15:18:36

C1Input控件的Value和Text使用介绍

Value属性是C1Input控件的主属性,默认情况下,Value属性为控件绑定的实际值,此时设置Text数据没有作用

当控件不在EditMode中时,控件显示的Text将以正确格式显示其当前Value(如果需要将Text属性作为单独的属性来使用,可以将TextDetached属性设置为True,此时Text和Value没有关联关系,设置Text属性即可改变控件的显示内容,)

如果该控件不是只读的, 当TextDetached属性设置为False时,它将在收到输入焦点时自动切换到EditMode 。输入焦点是指控件的输入窗口何时获得焦点。在编辑模式下,控件的文本由用户编辑,而“值”保持不变,直到编辑结束。当用户尝试离开控件时(例如,将输入焦点移到其他位置),Value属性将更新为用户输入的Text。
更新Value的过程涉及以下三个主要操作:

[*]解析 由于键入了Value属性(根据控件当前DataType),所以该过程从解析Text字符串开始并将其转换为正确的DataType。如有必要,此时可以使用基于字符串的验证技术(例如模式匹配和正则表达式)来验证输入的文本。也可以在PreValidation事件中来进行验证



[*]验证 获得键入的值后,可以通过PostValidation来验证,在此可以将其与预定义值,最大值和最小值以及时间间隔列表等进行匹配,或者在PostValidating事件中以编程方式进行验证。验证之后,新值将分配给Value属性,然后Value属性将更新为数据源。



[*]更新当用户尝试将输入焦点移出控件或在控件外单击鼠标时,通常会更新Value。但是,也可以通过随时调用UpdateValueWithCurrentText方法以编程方式触发它。
将TextDetached属性设置为True(默认情况下为False)会将控件强制进入特殊模式。如果TextDetached属性设置为True。 则将禁用“值”和“文本”之间的链接,即使控件失去输入焦点,更改“值”也不会更新文本,并且更改“文本”也不会更新“值”。Text属性变得独立于Value属性。当您要完全编程控制更新文本和值时,此模式很有用。此时Text和Value相当于控件的两个完全独立的属性。



页: [1]
查看完整版本: C1Input控件的Value和Text使用介绍