属性标签页包含一个PropertyGrid,用于自定义工具提示的外观和行为。您对工具提示所做的大部分改变将反映在预览面板中。
下表列出影响工具提示的外观属性:属性 描述
BackColor 设置工具提示窗口的背景颜色。
BackgroundImage 设置提示窗口中显示的背景图像。
BackgroundImageLayout 设置背景图像布局为None(默认),Tile,Center,Stretch,Zoom或者TileStretch。
Border 设置是否显示工具提示窗口应该显示实线边框。
BorderColor 设置工具提示窗口边框的颜色。
Font 设置在工具提示使用的默认字体。
Forecolor 设置工具提示窗口的前景颜色。
Images 获取可以显示在工具提示上的图像的集合。
IsBalloon 设置是否显示工具提示为一个气球的形状。如果设置为true,工具提示会像漫画中的对话泡泡。
RoundedCorners 设置是否工具提示窗口将具有圆角。 Shadow 设置是否提示窗口会显示一个阴影。
StripAmpersands 设置是否文本中间的&符号应当显示。
UseFading 设置是否在现实一个工具提示时,使用淡出效果。
下表列出影响工具提示行为的属性:属性 描述
Active 设置一个值,指示是否工具提示当前是活动的状态。
AutomaticDelay 设置工具提示的自动延时。
AutoPopDelay 设置一段时间(单位是毫秒),表示工具提示在鼠标指针悬停不动时,所能够持续显示的时间。
HitTestVisible 指定工具提示是否为鼠标可见。
InitialDelay 设置在工具提示显示之前经过的时间
MaximumWidth 设置工具提示的最大宽度。
Opacity 获取或设置工具提示的不透明度。
ReshowDelay 设置鼠标指针从一个组件移动到另一个组件时,随后出现的工具提示出现的时间必须经过的时间间隔。
ShowAlways 设置一个值,指示是否显示工具提示即使父组件不活动也会显示。
InputPanel基础下图展示了当C1InputPanel添加到Winows Form上之后的默认外观:
InputPanel键盘导航和校验
C1InputPanel 支持方向键导航以及校验功能。
键盘导航
您可以通过按Tab键在C1InputPanel 控件内的各个组件之间导航。如果一个输入字段包含一个自定义的对话框则可以使用F4快捷键打开对话框。如果对话框有几个选项卡窗体,就像字体对话框那样,你可以使用Tab键在每个不同的选项卡窗体之间导航。
校验
当用户输入无效数据时,将出现一个默认的红色框,作为一个视觉警告,让用户知道这里存在无效数据。默认红色框的外观可以通过C1InputPanel.ErrorFrameColor以及C1InputPanel.ErrorFrameThickness属性进行自定义。
除了视觉警报,您也可以提供一个表示无效输入的文本警报。C1InputPanel具有一个InputComponent.ErrorText属性,设置该属性将您输入的字符串值作为一个工具提示,当鼠标悬停经过该输入组件时,显示错误信息。
下图显示当使用了该可视化的,以及文本化的校验警报产生的结果:
InputPanel组件
C1InputPanel具有一个Items属性,该属性提供了到InputComponent对象集合的访问。这些对象可以通过设计器,
C1InputPanel 项目集合编辑器,或者编程方式进行添加。
本章节提供了组成C1InputPanel控件的一个可视化的描属性的概述。每个主题包含关于元素的一个简短概述以及它如何在C1InputPanel控件中使用。
每个输入组件具有以下主要属性:
Text
Enabled
AutoSize
Width
Height
TabStop
ToolTipText
下表列出了这些组件并描述其功能:
属性 | 描述 |
InputGroupHeader | C1InputPanel中的分组页眉。 |
InputButton | 表示C1InputPanel控件中的一个按钮元素。 |
InputCheckBox | 表示C1InputPanel控件中的一个复选框元素。 |
InputComboBox | 表示C1InputPanel控件中的一个组合框元素。 |
InputDataNavigator | 表示C1InputPanel控件中的一个数据导航元素。 |
InputDatePicker | 表示C1InputPanel控件中的一个日期选择元素。允许用户选择一个日期。 |
InputImage | C1InputPanel控件上的图像。 |
InputLabel | C1InputPanel控件中的标签。 |
InputHtmlLabel | C1InputPanel控件中的HTML标签。 |
InputMaskedTextBox | 表示C1InputPanel控件中的一个掩码输入文本框元素。 |
InputMenu | 表示C1InputPanel控件中的一个菜单元素。 |
InputNumericBox | 表示C1InputPanel控件中的一个数值框元素。 |
InputProgressBar | 表示C1InputPanel控件中的一个进度条元素。 |
InputRadioButton | 表示C1InputPanel控件中的一个单选按钮元素。 |
InputSeparator | 表示C1InputPanel控件中的一个分隔线元素。 |
InputSplitButton | 表示C1InputPanel控件中的一个分隔按钮元素。 |
InputTextBox | 表示C1InputPanel控件中的一个文本框元素。 |
InputTimePicker | 表示C1InputPanel控件中的一个时间选择器元素。 |
InputTrackBar | 表示C1InputPanel控件中的一个滑块元素。 |
InputControlHost | 表示C1InputPanel控件中的一个控件宿主元素。 |
InputButton
InputButton组件,和标准的按钮控件类型一样,允许用户单击以执行某个动作。
除了标准的按钮属性之外,InputButton包含以下独特的成员:
InputComponent.Break属性 - 获取或设置流布局如何在组件之后发生打断。
InputButton.CheckOnClick 属性 - 获取或设置一个值,该值表示是否当按钮单击之后切换为始终按下的状态。
InputButton.Pressed 属性 - 获取一个值,该值表示是否按钮为按下状态。
InputComponent.ToolTipText 属性 - 获取或设置一个文本值,该值将出现在该组件的工具提示上。 InputButton.PressedChanged 事件 - 当Pressed属性的值发生变化时触发。
InputCheckBox
您可以设置该复选框的对齐方式为靠其文本的左侧,居中或者右侧对齐。该 InputCheckBox 可以具有三种不同的状态:
Unchecked
Checked
Indeterminate
默认情况下,InputCheckBox允许两种复选状态,Unchecked以及Checked,但是您也可以通过设置 InputCheckBox.ThreeState属性的值为True允许出现全部的三种复选状态。
您可以通过InputCheckBox.CheckAlign属性指定复选框出现在左侧,居中或者右侧对齐。下表说明了当 InputCheckBox组件的InputCheckBox.CheckAlign属性设置为不同值时的不同表现:
InputCheckBox.CheckAlign 外观设置
Left
Center
Right
InputRadioButton
InputRadioButton是一种按钮,当单击时,重置相同分组中的其他按钮的选中状态。
InputComboBox
默认的InputComboBox具有一个下拉箭头,但是您可以通过设置其DropDownStyle属性改变下拉样式的外观。 InputComboBox具有一个下拉箭头以及一个下拉列表框。
您可以使用InputComboBox.MaxDropDownItems属性指定显示在下拉列表框中的项目的最大个数。默认值是显示八个项目。有两种类型的项目可以添加到InputComboBox:InputOption以及InputGroupHeader。
C1InputPanel提供了一个InputComboBox项目集合编辑器,以便向InputComboBox添加项目。添加的项目为 InputOptions类型。
InputDatePicker
在运行时InputDatePicker的外观如下:
通过单击方框中的下拉箭头,将出现一个在底部显示当前日期的日历。您可以通过设置InputDatePicker.ShowToday 属性为False,以选择不在日历底部显示当前日期。 InputTimePicker
在运行时InputTimePicker组件外观如下所示:
InputTimePicker包含三个字段以输入时间。默认的InputTimePicker包含以下三个字段:小时,分钟,以及上午/下午。
InputGroupHeader
该组件内嵌在C1InputPanel的主控件中。它为内嵌的组件显示一个边框,同时具有一个可折叠的标题栏。可以通过 InputGroupHeader.Text属性设置标题栏的文本。默认的文本,Group,将出现在页眉的标题上。
InputGroupHeader组件可以折叠收起,当InputGroupHeader.Collapsible属性设置为True时。更多信息,请参见创建一个可折叠的输入分组。
如果您希望InputGroupHeader显示为收起状态,您可以设置InputGroupHeader.Collapsed属性的值为True。 InputGroupHeader的文本可以相对于分组靠左,居中或者靠右对齐,通过设置InputGroupHeader.TextAlign属性。
TextAlign 外观 Property 设置
Left
Center
Right
InputImage
InputImage组件用作在C1InputPanel中间显示图像。您可以通过使用InputImage.SizeMode属性决定如何决定在组件内部显示的图像的尺寸。
InputLabel
InputLabel组件提供描述性的文本,以提示用户关于该表单的目的。
当您指定了InputLabel的宽度时,标签将折行显示文本,并且其高度将自动调整以适应文本的高度。
InputHtmlLabel
InputHtmlLabel是一个HTML Label组件,用作提供描述性的文本以提示用户关于该表单的目的。
InputMenu
InputMenu 组件是一个菜单。您可以很容易地通过InputMenu项目集合编辑器添加菜单和菜单项:
InputProgressBar
InputProgressBar是一个用来显示某一个任务完成程度的进度条,例如,当您下载一个文件时,显示下载文件的进度。
当您向C1InputPanel添加一个InputProgressBar时,看起来如下图所示:
InputTrackBar
InputTrackBar表示C1InputPanel控件中的一个滑块元素。当您向C1InputPanel添加一个InputTrackBar组件时,看起来如下图所示:
在运行时,您可以向左移动箭头以减少值或者向右移动箭头以增加绑定对象的值。您可以通过设置
InputTrackBar.TickFrequency属性改变每一次步进改变值的大小。
InputMaskedTextBox
InputMaskedTextBox组件用做将输入的文本以掩码方式表示。组件中的每一个字符位置映射到一个特殊的占位符或者文本字符。文本字符,或者文本,可以针对所使用的数据类型给出提示。例如,括起电话区号数字的括号以及破折号属于文本字符。(412)-123-2222。编辑掩码可以防止用户向组件输入无效字符,并对用户界面提供了其他增强。
InputMaskedTextBox和标准的MaskedTextBox相似,并且和ComponentOne ASP.NET 版本的WebInput中的 C1WebMaskEdit控件几乎完全一致,除了以下的独特的成员:
InputComponent.Break
InputComponent.BoundValueChanged
InputNumericBox
在运行时,InputNumericBox组件外观和下图类似:
InputNumericBox包含一个用于输入数值的字段以及右侧的上下箭头。单击向上或者向下箭头一次将当前值增加/减少值1,除非您指定了一个不是1的值给InputNumericBox.Increment属性的值。您可以通过指定Font以及ForeColor属性自定义数值的外观。同样您也可以通过设置InputTextBox.TextAlign属性将数值靠左,居中,或者靠右对齐。
Input TextBox
InputTextBox组件在运行时外观如下图所示:
!worddav9e084dd2d151d8726842c05f9c288609.png|height=22,width=100!上。InputTextBox组件用作输入文本。您可以通过修改以下任意的行为相关的属性修改该行为:
InputTextBox.AcceptsReturn –获取或设置一个值,该值决定是否InputTextBox应当处理Enter键。
InputTextBox.AcceptsTab –获取或设置一个值,该值决定是否InputTextBox应当处理Tab键。
InputComponent.Enabled –获取或设置一个值,该值指示是否该组件可以响应用户交互。
InputComponent.ErrorText –获取或设置一个错误描述字符串,关联到该组件。
InputTextBox.MaxLength –获取或设置该组件允许输入的最大字符数。
InputTextBox.Multiline –获取或设置一个值,该值决定是否用户可以输入多行文本至InputTextBox。 InputComponent.TabStop –获取或设置一个值,该值指示是否用户可以通过TAB键将焦点移动到该组件
InputComponent.ToolTipText –获取或设置作为一个组件工具提示出现的文本。
InputComponent.Visibility –获取或设置该组件是否可见。
InputTextBox.WordWrap –获取或设置是否文本允许在InputTextBox内部折行显示。
您可以通过修改以下任意的外观属性自定义InputTextBox组件的外观:
InputComponent.Font –获取或设置该InputComponent使用的字体。
InputComponent.FontPadding –获取或设置是否InputComponent应当使用padding以防止文本被剪裁。
InputComponent.ForeColor –获取或设置用作显示InputComponent文本的颜色。
InputTextBox.Text –获取或设置关联到此组件的文本。
InputTextBox.TextAlign –获取或设置文本如何在InputTextBox中进行对齐。
当您具有跨越多行的文本时,您需要确保设置了InputTextBox.Multiline属性的值为True。
InputDataNavigator
这是一个提供方便的在数据源记录之间导航按钮的数据绑定组件。它允许移动到第一个,最后一个,前一个或者后一个记录,并且通用的数据操作,例如更新数据远以及刷新数据等。
当您添加InputDataNavigator至C1InputPanel之后,看起来类似下图:
您可以通过设置NavigatorItems属性选择哪些项目在InputDataNavigator上可见。关于如何选择InputDataNavigator 按钮的更多信息,请参见为InputDataNavigator选择项目。
您还可以添加一个Save按钮以及一个Reload按钮至InputDataNavigator组件(参见添加Reload,Save以及Edit按钮)下图描绘了添加了Save以及Reload按钮的InputDataNavigator组件的外观:
下表提供了关于InputDataNavigator组件按钮的相关信息:
图像 | 名称 | 描述 |
| Move First | 移动到第一个记录。 |
Move | 移动到前一个记录。 |
Move Next | 移动到下一个记录。 |
Move Last 移到最后一条记录。
Add New 添加一条新的记录。
Delete 删除当前记录。
Apply !worddav69c02df9cbf0e19384017974ce04ab7f.png | height=25,width=25!Changes | 将更改应用于当前记录。一旦使用了Apply Changes按钮,则发生的更改不能够撤销。 |
Cancel !worddav69c02df9cbf0e19384017974ce04ab7f.png | height=25,width=25!Changes | 取消对当前记录的修改。如果已经按下了Apply Changes按钮将变更应用到记录,则无法撤销更改。 |
Save Data | 保存当前数据至外部数据源。 |
Refresh Data 从外部数据远获取更新后的数据。
InputControlHost
InputControlHost使得可以嵌入任意的控件至C1InputPanel。完成以下步骤以添加一个MonthCalendar控件至输入面板:
- 向窗体添加C1InputPanel控件。
- 我们必须定义以下类:
Visual Basic
Visual Basic
Public Class MonthCalendarHost
Inherits C1.Win.C1InputPanel.InputControlHost
Public Sub New()
MyBase.New(New System.Windows.Forms.MonthCalendar())
End Sub
End Class
C# C#
public class MonthCalendarHost : C1.Win.C1InputPanel.InputControlHost
{
public MonthCalendarHost()
: base(new System.Windows.Forms.MonthCalendar())
{
}
}
- 编译该工程。
- 在设计视图中,选择C1InputPanel控件,并打开其智能标签,接下来在"Add New Item"组合框中选择"InputControlHost"。
这将打开一个对话框,在此您应当输入我们的控件宿主的类名称,比如说"WindowsApplication1.MonthCalendarHost"。
- 在Adding InputControlHost对话框中单击OK。该控件将添加到C1InputPanel。
下次,当您希望添加MonthCalendarHost组件时,您将不需要键入其名称。该类型的名称可以从"Adding InputControlHost"对话框中的下拉列表中选择。
注:注:强烈建议您将全部的基于InputControlHost的组件移动到独立的.DLL工程,这将使得这些组件不会和主程序一起重新构建。这可以让您避免以下众所周知的问题:在VS2008IDE中,当应用程序进行过一次调试之后,窗体的任何属性或者包含一个InputControlHost的C1InputPanel无法被修改。 |
InputPanel 组件布局
默认情况下,Input组件按照每行一个的方式堆叠显示。您可以改变输入组件的布局流,通过输入元素的
InputComponent.Break属性。InputComponent.Break属性具有以下可选的四种设置:
None –布局将不会在该组件之后打断流布局。
Row –默认设置。设置每一个组件在流布局中放置一个新行。
Column –在组件之后创建一个新列。
Group –在当前输入组件下方创建一个新的起始行,位于当前分组的左侧边缘。
C1InputPanel 提供了两种不同的方式来指定输入组件布局的打断位置:
如果第一个组件的Break 属性设置为None 或
如果输入组件之间存在一个InputSeparator 在InputGroup组件内部的子项目缩进
C1InputPanel同时也处理位于InputGroupHeader内部元素的布局。InputGroupHeader组件具有一个带有内边距的内容区域,因此内部的元素将自动具有缩进。
多列
通过InputSeparator 组件,可以在一个分组中创建多列。默认情况下,当InputSeparator 添加到C1InputPanel控件上时,它是不可见的,但是可以使得其可见以创建垂直或者水平的线,以便将控件分隔成多行或者多列。下图说明了
InputSeparator 是如何将Label,Special,以及其他Label分隔成多列的:
在分组内对齐元素
此外,对于InputLabel当指定了其标签宽度时,标签将折行,同时其高度将适应文本。
InputPanel for WinForms 示例
请注意,这个ComponentOne软件工具伴随着各种示例工程和/或Demo,可能同时使用了包含在ComponentOne套件包中的其他开发工具。
示例可以通过ComponentOne示例资源管理器进行访问。为查看示例,在您的桌面上,单击开始按钮,并单击
ComponentOne | Studio for WinForms | Samples | InputPanel Samples。下表为每一个示例提供了一个简短的描述。
Visual Basic示例示例
示例 描述
CustomEditors 演示用作编辑C1InputPanel视觉样式的自定义编辑器。
DataBinding 演示如何使用特殊属性将每个类型的输入组件绑定到数据源。
ErrorProvider 演示如何使用组件的验证事件对其进行验证。它同时演示了如何使用
ErrorText属性,当用户在输入组件存在非法输入时,创建一个错误提示信息。
C#示例示例
示例 描述
CustomEditors 演示用作编辑C1InputPanel视觉样式的自定义编辑器。
DataBinding 演示如何使用特殊属性将每个类型的输入组件绑定到数据源。
ErrorProvider 演示如何使用组件的验证事件对其进行验证。它同时演示了如何使用
ErrorText属性,当用户在输入组件存在非法输入时,创建一个错误提示信息。