【发布时间】:2011-09-19 22:51:43
【问题描述】:
使用 DataGridViewComboBoxColumn,目标是使 ComboBoxes 接受用户的新项目以及选择已经存在的项目的可能性。
我知道使用 DataGridView 的 EditingControlShowing 事件来更改 DataGridViewComboBoxEditingControl 的 DropDownStyle运行时间允许这样做,但我想知道这是否可以在较低级别完成。
我现在做的是扩展DataGridViewComboBoxColumn、DataGridViewComboBoxCell和DataGridViewComboBoxEditingControl,希望能改变EditingControl的DropDownStyle > 在我实例化它的那一刻。到目前为止,没有运气。
调试器显示正在执行正确的分配,但是,DropDownStyle 在 EditingControlShowing 处弹出(使用该事件进行调试)作为 DropBoxList ,而不是 DropBox,这是意图。
以下是课程:
Public Class DataGridViewComboBoxColumnALT
Inherits System.Windows.Forms.DataGridViewComboBoxColumn
Public Sub New()
Me.CellTemplate = New DataGridViewComboBoxCellALT
End Sub
End Class
Public Class DataGridViewComboBoxCellALT
Inherits System.Windows.Forms.DataGridViewComboBoxCell
Public Overrides ReadOnly Property EditType() As Type
Get
Return GetType(DataGridViewComboBoxEditingControlALT)
End Get
End Property
End Class
Public Class DataGridViewComboBoxEditingControlALT
Inherits System.Windows.Forms.DataGridViewComboBoxEditingControl
Implements System.Windows.Forms.IDataGridViewEditingControl
Public Sub New()
MyBase.New()
Me.DropDownStyle = ComboBoxStyle.DropBox
End Sub
End Class
【问题讨论】:
标签: vb.net datagridview datagridviewcombobox