要在组合框一个特定位置的项目被选中时填充C1ComboBox,按如下步骤使用SelectedIndexChanged 事件:
- 在窗体上添加两个C1ComboBox控件。
- 在第一个C1ComboBox中通过String Collection Editor 一行一行的添加如下图所示的项目:
- 在C1ComboBox的Properties窗口中双击SelectedIndexChanged事件来创建SelectedIndexChanged事件的事件处理程序。在SelectedIndexChanged事件处理程序中添加如下代码:
Visual Basic
Title Text |
Private Sub comboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) c1ComboBox2.Items.Clear() |
C#
C# |
|
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) |
- 运行程序然后在第一个C1ComboBox中选择第二个项目"Orlando"。
- 点击第二个C1ComboBox的下拉按钮,注意到按照SelectedIndexChanged事件处理程序项目已经被添加到下拉列表中。
编辑掩码
当您设置EditMask属性为一个掩码字符串时,C1Input控件支持掩码输入。如果你定义了一个编辑掩码,在控件中每一个字符位置将映射到一个特殊的占位符或者文本字符。文本字符,或者说文本,可以对所使用的数据类型起到提示作
用。例如,在一个电话号码的格式中,包围电话号码区号的圆括号以及短线就是文本字符:(412)-123-4567.编辑掩码阻止您输入无效字符,并提供了对用户界面的其它增强。
为了启用掩码输入,设置EditMask属性的值为一个由占位符和文本字符组成的掩码字符串,可用的占位符如下表所示:您也可以通过CustomPlaceholders集合定义您自己的占位符。
尽管在简单情况下设置EditMask就已经足够,同时还提供了一个包含一组用来控制掩码输入各种重要方面子属性的
MaskInfo属性。其中一个就是上面所提到的CustomPlaceholders集合。其他一些属性为:
属性 | 描述 |
AutoTabWhenFilled | 如果为True,当掩码填充满时,焦点将自动移动到下一个控件。默认值:False。 |
PromptChar | 在空白输入位置显示的提示字符。默认值:'_'。 |
SaveBlanks | 如果为True,则存储文本包含空白位置,使用StoredEmptyChar定义的值。默认值:False。 |
SaveLiterals | 如果为True(默认值),存储的文本(StoredContent)将包含文本字符。 |
ShowLiterals | 控制当用户输入时,文本字符出现方式的枚举设置。文本字符可以始终出现,从不出现,或者当用户输入位置到达某个文本字符时出现。 |
|
|
SkipOptional | 如果为True(默认),可选地掩码位置可以被自动跳过,直至到达第一个允许该字符的输入位置。 |
StoredEmptyChar | 存储在空白掩码位置的字符。默认值:'_'。 |
关于掩码相关属性的完整列表,请参见MaskInfo类。
如果ShowLiterals属性设置为FreeFormatEntry,则可选掩码位置可以完全被忽略;不需要填充这些空白字符。
C1Input中使用的掩码字符(占位符)和Microsoft Access以及Microsoft ActiveX MaskEdit控件中使用的占位符类似(使用CustomPlaceholders集合可以定义更多的占位符):
占位符 | 描述 |
# | 数字占位符表示该位置允许一位数字或加减号(是否输入为可选)。 |
. | 小数点占位符。实际使用的字符是您的国际化设置所指定的小数点占位符。该字符作为掩码处理为文本字符。 |
, | 千位分隔符。实际使用的字符是您的国际化设置所指定的千位分隔符。该字符作为掩码处理为文本字符。 |
: | 时间分隔符。实际使用的字符是您的国际化设置所指定的时间分隔符。该字符作为掩码处理为文本字符。 |
/ | 日期分隔符。实际使用的字符是您的国际化设置所指定的日期分隔符。该字符作为掩码处理为文本字符。 |
|转义符号,将掩码字符串中的下一个字符作为文本字符。这可以让您在掩码中包含 | |
& | 字符占位符(必须输入)。允许输入任何字符。 |
> | 将之后所有的字符转换为大写形式。 |
< | 将之后所有的字符转换为小写形式。 |
~ | 关闭之前的<或>设置。 |
! | 使得跟随此编辑掩码的可选字符串从右向左显示,而不是默认的从左到右显示。所以,空格将出现在左侧。 |
^ | 关闭之前的!字符的功能。在 ^字符位置之后,空白将出现在右侧。 |
A | 字母数字字符占位符(必须输入)。例如:a – z,A – Z,或者 0 – 9。 |
a | 字母数字字符占位符(可选输入)。 |
0 | 数字占位符(必须输入)。例如:0 – 9。 |
9 | 数字占位符(可选输入)。 |
C | 字符或空格的占位符(可选输入)。允许任何字符输入。 |
L | 字母占位符(必须输入)。例如:a – z 或者 A – Z。 |
? | 字母占位符(可选输入)。 |
\n | 新行文本字符。当Multiline属性设置为True时适用。 |
" | 双引号括起的包含任意字符的字符串将被视为文本字符串。 |
Literal | 所有的其它符号将作为文本字符显示,即,显示为自身。 |
示例
上面提到的电话号码,(412)123-4567可以由编辑掩码EditMask设置为(000)000-0000表示。
验证数据
C1Input控件支持两种数据校验方式,对原始输入字符串的校验(PreValidation)以及对用户输入值的校验
(PostValidation)。参见Value和Text:显示,验证,和值的更新,以解释校验过程输入字符串验证(PreValidation)
输入字符串验证由PreValidation属性进行控制。PreValidation类允许您您使用通配符模式字符串或正则表达式字符串指
定验证规则。所有的规则(字符串)通过PatternString属性指定。多个规则(子字符串)由ItemSeparator分隔(默认为'|')。
PreValidation属性定义如何解释PatternString。
值 | 描述 |
ExactList | PatternString包含一个可能值的列表,该列表由ItemSeparator分隔。 |
PreValidatingEvent | PreValidating在验证过程中使用。 |
Wildcards | PatternString包含一组通配符模式的列 |
RegexPattern | PatternString包含一个正则表达式。 |
使用PreValidatingEvent选项,您可以在PreValidating事件中通过代码执行输入字符串校验。相关的更多信息,请参见事件描述。
如果您使用正则表达式,用到了RegexPattern选项,这里还有一个RegexOptions属性,您可以偶尔用来设置影响正则表达式匹配功能的标志。
注意:注意:输入字符串验证(PreValidation)在DateTimeInput和NumericInput模式下不使用。当启用DateTimeInput 或者NumericInput模式时,输入值验证(PostValidation)将被执行。 |
示例
以下示例描述如何理解Validation和PatternString属性:
Validation 属性设置为ExactList,PatternString属性设置为red|green|blue:输入的字符串必须是三个允许的字符串值之一,red,green,或者blue,如果CaseSensitive设置为False,则也可以忽略大小写。
Validation 属性设置为Wildcards,PatternString属性设置为(412)*:输入的字符串必须以(412)开头,如果 CaseSensitive设置为False,则也可以忽略大小写。
Validation 属性设置为RegexPattern,PatternString设置为 [0-9]*:输入字符串包含一个或多个数字。