Winforms 的 ComponentOne Studio 中 C1FlexGrid 中的 ComboList 的工作方式类似于 MS 控件的 DatGridView 中的 ComboList。ComboList 可以在 VB10 的 C1FlexGrig 中进行编辑。事实上,它是 C1FlexGrid 的一个重要且广泛使用的功能。
C1FlexGrid的ComboList属性启用了这个功能。它指定编辑单元格时要使用的编辑器类型。您可以使用文本框、下拉列表、下拉组合或编辑按钮来弹出自定义编辑器表单。
若要使用 ComboList 属性,请将AllowEditing属性设置为true并通过将ComboList属性设置为描述要用于该单元格的编辑类型的字符串来响应BeforeEdit事件。选项描述如下:
要使用常规文本框编辑单元格,请将 ComboList 属性设置为空字符串。例如:
flex.ComboList = string.Empty
要使用下拉列表编辑单元格,请将 ComboList 属性设置为包含可用选项的字符串,并用竖线字符分隔。例如:
flex.ComboList = "项目 1|项目 2|项目 3"
要使用下拉组合编辑单元格,请将 ComboList 属性设置为包含可用选项的字符串,以竖线字符 ("|") 分隔并以竖线字符开头。例如:
flex.ComboList = "|项目 1|项目 2|项目 3"
要显示编辑按钮,请将 ComboList 属性设置为包含省略号 ("...") 的字符串。编辑按钮看起来像常规按钮,与单元格右侧对齐,并带有省略号作为标题。当用户单击编辑按钮时,网格会触发 CellButtonClick 事件。在这种情况下,用户不能直接编辑单元格内容。例如:
flex.ComboList = "..."
要在可编辑单元格旁边显示编辑按钮,请将 ComboList 属性设置为包含竖线和省略号(“|...”)的字符串。在这种情况下,您会看到一个常规的编辑按钮,但用户也可以直接编辑单元格内容。例如:
flex.ComboList = "|..."
示例:
下面的代码处理 BeforeEdit 事件并为 ComboList 属性分配一个值,以便网格每隔一行显示按钮。
Private Sub _flex_BeforeEdit(sender As Object, e As RowColEventArgs)
_flex.ComboList = String.Empty
If e.Row Mod 2 = 0 Then
_flex.ComboList = "..."
End If
End Sub