在前面看到了很多关于怎样向DataGrid中添加ComboBox控件的方法。使用的方法全部都是在VB6.0中的方法。
我还是要说说在CSND中发贴的朋友。
现在所谓的.NET编程人员,不知道是怎么了呢!只是停留在使用.NET的编程环境中。并没有真正的了解面向对象的.NET编程思想。
我现在就利用继承DataGridColumnStyle完成向DataGrid中添加ComboBox。
希望这样有助于大家了解真正的面向对象编程的思想。不要只是认为利用VB6.0中的某些方法就是.NET高手了:)下面是实现代码:我使用的是VB.NET来完成的。
我熟悉C#,但是VB.NET只是大概了解一下。:)
由于时间关系没有协注释,请见谅!
Public Class DataGridComboColumn
Inherits DataGridColumnStyle
Public WithEvents DGCombo As ComboBox = New ComboBox
Private isEditing As Boolean
Private _strSelectedText As String
Public Sub New()
MyBase.New()
DGCombo.Visible = False
End Sub
Protected Overrides Sub Abort(ByVal rowNum As Integer)
isEditing = False
RemoveHandler DGCombo.SelectedValueChanged, AddressOf DGCombo_SelectedValueChanged
Invalidate()
End Sub
Protected Overrides Function Commit(ByVal dataSource As System.Windows.Forms.CurrencyManager, ByVal rowNum As Integer) As Boolean
DGCombo.Bounds = Rectangle.Empty
AddHandler DGCombo.SelectedValueChanged, AddressOf DGCombo_SelectedValueChanged
If isEditing = False Then
Return True
End If
isEditing = False
Try
DGCombo.Text = DGCombo.Text
Catch ex As Exception
DGCombo.Text = String.Empty
End Try
Try
Dim value As String