翻译|使用教程|编辑:况鱼杰|2021-03-02 10:34:11.230|阅读 212 次
概述:文本和选择表单字段的值均由表单字段的Text属性表示。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
TX Text Control .NET for Windows Forms 是一套功能丰富的文字处理控件,它以可重复使用控件的形式为开发人员提供了Word中常用的文字处理功能,对于需要强大且灵活的文档处理能力的应用程序而言,是理想的选择。
点击下载 TX Text Control .NET for Windows Forms X19试用版
文本和选择表单字段的值均由表单字段的Text属性表示。这些形式字段的条件可以分为三类:
第一个包含常见的字符串比较,其中将针对特定字符串测试表单字段的文本。可以用于此字符串比较的运算符是,不是,包含,开头为,结尾为,不包含,不开头和不结尾。
定义条件的另一种方法是使用运算符“大于”,“大于或等于”,“小于”和“小于”,将表单字段的文本值与指定的比较字符串值进行比较。
创建字符串比较条件的一种更复杂但功能强大的方法是使用正则表达式。这种条件检查表单字段的文本值是否匹配指定的正则表达式。在这种情况下,可以使用.NET Framework支持的所有正则表达式。
基础的字符串比较
基本的字符串比较条件是检查表单字段的文本值(或其中的一部分)是否与特定的字符串匹配。 Is和Is not运算符检查表单字段的文本是否等于指定的字符串。包含和不包含运算符可用于测试特定的字符串序列。提供以“开头”,“不以开头”,“以...结尾”和“不以结尾”检查表单字段的文本是否以指定的字符串开头或结尾(或不开头/结尾)。
下面列出了一些应用此类字符串比较的示例:
包含文字
许多表格要求必须填写某些表格字段。要检查是否填写了文本或选择表单字段,将Is或Is not运算符与相应的Empty(未设置值)标志一起使用。
要以编程方式创建此条件,请使用以下代码段:
// Create conditions Condition cdContainsText = new Condition(m_tffTextFormField, Condition.ComparisonOperators.IsNot, null); Condition[] rcdConditions = new Condition[] { cdContainsText };
是“Colorado”还是“ CO”
以下条件显示了如何通过匹配不同的表达式来关联特定值。它通过其真实姓名和相应的邮政缩写来标识科罗拉多州。一种情况是检查表单字段的文本是否等于字符串“ Colorado”。 另一个测试字符串“ CO”。 这两个条件都通过“或”逻辑连接词进行连接。
// Create conditions Condition cdIsColorado = new Condition(m_tffTextFormField, Condition.ComparisonOperators.Is, "Colorado"); Condition cdIsCO = new Condition(m_tffTextFormField, Condition.ComparisonOperators.Is, "CO") { LogicalConnective = Condition.LogicalConnectives.Or }; Condition[] rcdConditions = new Condition[] { cdIsColorado, cdIsCO };可以通过检查表单字段的文本是否包含但不以'@'开头,以字符串“ .com”结尾(但不以“ @ .com”结尾)来构造用于.com地址的简单电子邮件验证条件。有四个条件是必须通过AND逻辑连接词进行连接的。第一个条件使用Contains运算符检查字符串是否包含'@'字符。下一个条件确保“ @”不是表单字段文本的第一个字符(使用“不以运算符开头”)。条件三检查文本是否以“ .com”结尾。第四个保证为该地址定义一个域。
要以编程方式创建这些条件,请使用以下代码段:
// Create conditions Condition cdContainsAt = new Condition(m_tffTextFormField, Condition.ComparisonOperators.Contains, "@"); Condition cdDoesNotStartWithAt = new Condition(m_tffTextFormField, Condition.ComparisonOperators.DoesNotStartWith, "@"); Condition cdEndsWithCOM = new Condition(m_tffTextFormField, Condition.ComparisonOperators.EndsWith, ".com"); Condition cdDoesNotEndWithAtCom = new Condition(m_tffTextFormField, Condition.ComparisonOperators.DoesNotEndWith, "@.com"); Condition[] rcdConditions = new Condition[] { cdContainsAt, cdDoesNotStartWithAt, cdEndsWithCOM, cdDoesNotEndWithAtCom };如上所述,此条件只是验证电子邮件地址的简单方法。它不能识别多个'@'符号或无效字符。一种更准确的方法是使用标识此类电子邮件地址的正则表达式。在正则表达式条件一章中定义了如何创建和使用这种正则表达式条件。
字符串值比较
在某些情况下,必须比较由表单字段文本和比较字符串表示的值。 如果两个字符串都表示一个数字,则条件可以检查由表单字段文本表示的数字是否大于,大于或等于,小于或小于或等于比较值。 否则,相应的运算符将应用字符串比较,以检查两个字符串的字母顺序。
字符串值比较的一些示例如下所示:
仅正数
要检查文本是否表示一个正数,将比较值为0的大于等于运算符或比较值为1的大于等于运算符用作条件。
要以编程方式创建此条件,请使用以下代码段:
// Create conditions Condition cdGreaterThan0 = new Condition(m_tffTextFormField, Condition.ComparisonOperators.IsGreaterThan, "0"); Condition[] rcdConditions = new Condition[] { cdGreaterThan0 };由于每个将字符串值解释为数字的条件,该条件也接受十进制值。 在这种情况下,应该注意,数字格式取决于当前的System.Threading.Thread.CurrentThread.CurrentCulture值,这意味着小数点分隔符的解释在不同的系统上可能会有所不同。 例如:在英语系统中,字符串“ 1.0”表示数字1,而在德语系统中,字符串“,”用于分隔小数,而忽略“。”。 字符(“ 1.0”将被解释为数字10)。
从0到18的数字
可以通过创建两个确定该范围的开始和结束的条件来定义数字范围。 可以使用“大于”或“大于或等于”运算符定义开始条件。 范围的末端由使用小于或等于或小于等于运算符的条件确定。
要以编程方式创建这些条件,请使用以下代码段:
// Create conditions Condition cdGreaterThanOrEqual0 = new Condition(m_tffTextFormField, Condition.ComparisonOperators.IsGreaterThanOrEqual, "0"); Condition cdLessThanOrEqual18 = new Condition(m_tffTextFormField, Condition.ComparisonOperators.IsLessThanOrEqual, "18"); Condition[] rcdConditions = new Condition[] { cdGreaterThanOrEqual0, cdLessThanOrEqual18 };以字符“ a”,“ A”,“ b”,“ B”,“ c”和“ C”开头的字符串
除了使用“开始于”运算符来检查字符串是否以特定字符开头之外,还可以使用“大于”,“大于或等于”,“小于”和“小于或等于”运算符。
要标识以特定字符开头的字符串,必须至少指定两个条件。 第一个条件使用大于或等于运算符来确定该范围的第一个有效字符串。 第二个条件使用Is小于运算符指定最后一个有效字符串后的以下字符。 由于字符串比较区分大小写,因此,如果需要,必须同时为大写和小写创建条件。
要以编程方式创建这些条件,请使用以下代码段:
// Create conditions Condition cdFromFirstLowerCaseA = new Condition(m_tffTextFormField, Condition.ComparisonOperators.IsGreaterThanOrEqual, "a"); Condition cdToAllLowerCaseC = new Condition(m_tffTextFormField, Condition.ComparisonOperators.IsLessThan, "d"); Condition cdFromFirstUpperCaseA = new Condition(m_tffTextFormField, Condition.ComparisonOperators.IsGreaterThanOrEqual, "A") { LogicalConnective = Condition.LogicalConnectives.Or }; Condition cdToAllUpperCaseC = new Condition(m_tffTextFormField, Condition.ComparisonOperators.IsLessThan, "D");使用正则表达式
创建条件的一种有效方法是使用正则表达式。 可以使用正则表达式来定义简单条件(例如,检查一定数量的字符)和更复杂的情况(例如,标识电子邮件地址)。 为此,必须创建一个条件,该条件使用“匹配”正则表达式或“不匹配”正则表达式运算符以及有效的正则表达式字符串。
下面列出了一些使用正则表达式作为条件的示例:
文字长度大于4且小于9
若要定义测试表单字段的文本长度的最小和最大长度的条件,可以使用正则表达式字符串“ ^。{min,max} $”。 最小占位符表示所需的最小长度。最大占位符最大长度。
要以编程方式创建此条件,请使用以下代码段:
// Create conditions Condition cdMatchesLengthRange = new Condition(m_tffTextFormField, Condition.ComparisonOperators.Is, "^.{5,8}$", Condition.TextComparisonFlags.Regex); Condition[] rcdConditions = new Condition[] { cdMatchesLengthRange };没有数字,没有空格
可以通过将正则表达式“ [\ s \ d] +”与“不匹配正则表达式”运算符一起设置来确定创建仅接受不包含数字或空格的字符串的条件的选项。
要以编程方式创建此条件,请使用以下代码段:
// Create conditions Condition cdGreaterThan0 = new Condition(m_tffTextFormField, Condition.ComparisonOperators.IsGreaterThan, "0"); Condition[] rcdConditions = new Condition[] { cdGreaterThan0 };
其他有用的正则表达式
特定选择表格的现场条件
SelectionFormField类既可以作为组合框也可以作为下拉列表进行处理。 关于其项目集合,除了上面列出的条件之外,SelectionFormField类还提供了两个其他选项。
第一个是创建一个条件,该条件将显示的文本与特定项目的文本进行比较。 与简单字符串比较条件的不同之处在于,指定的项必须存在。 如果SelectionFormField的Items属性不包含带有指定文本的项目,则即使文本比较成功,该条件也将被视为未满足。
另一个选项是检查当前是否选择了任何项目。 与检查特定项目类似,该条件将测试SelectionFormField项目数组中的任何字符串是否等于显示的文本。
使用项目相关条件的一些示例如下所示:
等于项目“基本经济舱”的文本
要测试是否选择了特定项目,必须结合Is或Is not运算符使用条件对其进行引用。本示例说明如果选择了“基本经济舱”项目,则如何创建满足的条件。
要以编程方式创建此条件,请使用以下代码段:
// Create conditions Condition cdIsEconomyClassBasicItem = new Condition(m_sffDropDownList, Condition.ComparisonOperators.Is, " Economy class basic", Condition.ItemComparisonFlags.SpecificItem); Condition[] rcdConditions = new Condition[] { cdIsEconomyClassBasicItem };获取所有“经济舱”子类别
在某些情况下,一个项目代表一个主要类别,其名称显示在其子类别中。 要观察这些子类别项目,可以使用“包含”,“不包含”,“开头为”,“不开头”,“结尾为”和“不结尾”来检查主类别的名称是否属于所选项目。 如果此观察应忽略主要类别项目,则必须创建一个附加条件以确保未选择相应的项目。 此类条件必须通过“与”逻辑连接符进行连接。
要以编程方式创建这些条件,请使用以下代码段:
Condition cdIsNotEconomyClassItem = new Condition(m_sffDropDownList, Condition.ComparisonOperators.IsNot, "Economy class", Condition.ItemComparisonFlags.SpecificItem); Condition cdContainsEconomyClassItem = new Condition(m_sffDropDownList, Condition.ComparisonOperators.Contains, "Economy class", Condition.ItemComparisonFlags.SpecificItem); Condition[] rcdConditions = new Condition[] { cdIsNotEconomyClassItem, cdContainsEconomyClassItem };从XL到XXXL的所有尺寸
与简单的字符串比较类似,可以通过使用大于等于,大于等于,小于等于或小于等于运算符来定义范围条件。 “大于”或“大于或等于”运算符可用于确定代表下阈值的项目。 “小于”或“小于或等于”运算符用于设置上限阈值项目。
以下示例显示了如何检查是否选择了代表XL服装尺寸之一的项目。 由于不存在以整数值大于“ X”值的字符开头的项目,因此无需定义上限阈值条件。 但是,必须创建另一个条件,该条件不包括大小XS。 该条件由“与”逻辑连接词连接。
要以编程方式创建这些条件,请使用以下代码段:
' Create conditions Dim cdIsNotXS As Condition = New Condition(m_sffDropDownList, Condition.ComparisonOperators.[IsNot], "XS", Condition.ItemComparisonFlags.SpecificItem) Dim cdGreaterThanOrEqualXL As Condition = New Condition(m_sffDropDownList, Condition.ComparisonOperators.IsGreaterThanOrEqual, "XL", Condition.ItemComparisonFlags.SpecificItem) Dim rcdConditions As Condition() = New Condition() { cdIsNotXS, cdGreaterThanOrEqualXL }文字与太平洋州的项目相符
若要检查显示的文本是否代表SelectionFormField项之一,可以将Is或Is not运算符与相应的比较标志A列表项一起使用。
要以编程方式创建此条件,请使用以下代码段:
' Create conditions Dim cdIsListItem As Condition = New Condition(m_sffComboBox, Condition.ComparisonOperators.[Is], Nothing, Condition.ItemComparisonFlags.AnyItem) Dim rcdConditions As Condition() = New Condition() { cdIsListItem }
文章推荐:
TX Text Control系列教程—Windows Forms:创建应用程序
如果您对Text Control感兴趣,可以咨询购买正版授权软件。
关注慧聚IT微信公众号 ☟☟☟,了解产品的最新动态及最新资讯。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn
文章转载自: