|
导读在前面看到了很多关于怎样向DataGrid中添加ComboBox控件的方法。使用的方法全部都是在VB6.0中的方法。我还是要说说在CSND中发贴的朋友。现在所谓的.NET编程人员,不知道是怎么了呢!... 在前面看到了很多关于怎样向DataGrid中添加ComboBox控件的方法。使用的方法全部都是在VB6.0中的方法。 我还是要说说在CSND中发贴的朋友。 现在所谓的.NET编程人员,不知道是怎么了呢!只是停留在使用.NET的编程环境中。并没有真正的了解面向对象的.NET编程思想。 我现在就利用继承DataGridColumnStyle完成向DataGrid中添加ComboBox。 希望这样有助于大家了解真正的面向对象编程的思想。不要只是认为利用VB6.0中的某些方法就是.NET高手了。有这种思想的人都是菜鸟 (希望这么说没有得罪太多的朋友:)下面就是实现的代码:我使用的是VB.NET来完成的。 我熟悉C#,但是VB.NET只是大概了解一下。应该比一些人要高一点点吧!:) 见笑了!由于时间关系没有协注释,请见谅! Public Class DataGridComboColumn Public WithEvents DGCombo As ComboBox = New ComboBox Public Sub New() Protected Overrides Sub Abort(ByVal rowNum As Integer) End Sub Protected Overrides Function Commit(ByVal dataSource As System.Windows.Forms.CurrencyManager, ByVal rowNum As Integer) As Boolean isEditing = False Try End Function Protected Overloads Overrides Sub Edit(ByVal source As System.Windows.Forms.CurrencyManager, ByVal rowNum As Integer, ByVal bounds As System.Drawing.Rectangle, ByVal [readOnly] As Boolean, ByVal instantText As String, ByVal cellIsVisible As Boolean) value = CType(GetColumnValueAtRow(source, rowNum), String) If (cellIsVisible) Then If DGCombo.Visible = False Then Protected Overrides Function GetMinimumHeight() As Integer End Function Protected Overrides Function GetPreferredHeight(ByVal g As System.Drawing.Graphics, ByVal value As Object) As Integer End Function Protected Overrides Function GetPreferredSize(ByVal g As System.Drawing.Graphics, ByVal value As Object) As System.Drawing.Size End Function Protected Overloads Overrides Sub Paint(ByVal g As System.Drawing.Graphics, ByVal bounds As System.Drawing.Rectangle, ByVal source As System.Windows.Forms.CurrencyManager, ByVal rowNum As Integer) Protected Overloads Overrides Sub Paint(ByVal g As System.Drawing.Graphics, ByVal bounds As System.Drawing.Rectangle, ByVal source As System.Windows.Forms.CurrencyManager, ByVal rowNum As Integer, ByVal alignToRight As Boolean) Protected Overloads Overrides Sub Paint(ByVal g As System.Drawing.Graphics, _ Dim strDate As String rect.X = bounds.X g.FillRectangle(backBrush, rect) g.DrawString(strDate, Me.DataGridTableStyle.DataGrid.Font, foreBrush, rect) End Sub Protected Overrides Sub SetDataGridInColumn(ByVal value As DataGrid) Private Sub DGCombo_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGCombo.SelectedValueChanged 以下是使用方法! Private Sub frmDataGrid_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load Private Sub TEST() End Sub Private Sub AddGridStyle() Dim DBGridStyle As DataGridTableStyle DBGridStyle = New DataGridTableStyle IDColumn = New DataGridTextBoxColumn DCColumn = New DataGridComboColumn DBGrid.TableStyles.Add(DBGridStyle) End Sub Private Sub ADDDATA(ByRef DT As DataTable) For intRow = 0 To 9 DT.AcceptChanges() End Sub 那么随时在DataGrid中所指定为Combo列中单击。Combo就出现了 |
温馨提示:喜欢本站的话,请收藏一下本站!