<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-94  評論-56  文章-3  trackbacks-0

    對于下面的表格數(shù)據(jù),我們經(jīng)常會見到,
    20090601 00001 100 abc 1 sumisu
    20080601 00001 120 abc 1 yasio
    20070601 00001 150 def 1 toms
    20050601 00001 190 efg 1 arabama


    但有時候我們希望將同一列中內(nèi)容相同的單元格合并,變成下面這樣:
    20090601 00001 100 abc 1 sumisu
    20080601 120 yasio
    20070601 150 def toms
    20050601 190 efg arabama

    那么該如何實(shí)現(xiàn)呢?
    在網(wǎng)上調(diào)查了很多方法,也請教了很多人,雖然有一些解決方法,但都不是最理想的。
    偶爾下載到一個例子,很漂亮地實(shí)現(xiàn)了這個功能,不過是C#的,于是我花了不少時間,終于將她用VB.net實(shí)現(xiàn)了,在這里與各位分享。

    Imports System
    Imports System.Collections.Generic
    Imports System.ComponentModel
    Imports System.Data
    Imports System.Drawing
    Imports System.Drawing.Design
    Imports System.Text
    Imports System.Windows.Forms
    Imports System.Collections
    Imports System.Reflection
    Imports System.Runtime.InteropServices

    Public Class RowMergeView
        
    Inherits DataGridView

        
    Protected Overrides Sub OnCellPainting(ByVal e As DataGridViewCellPaintingEventArgs)

            
    If e.RowIndex > -1 And e.ColumnIndex > -1 Then
                DrawCell(e)
            
    End If

        
    End Sub


        
    '/ <summary>
        '/ DrawCell
        '/ </summary>
        '/ <param name="e"></param>
        Private Sub DrawCell(ByVal e As DataGridViewCellPaintingEventArgs)
            
    If e.CellStyle.Alignment = DataGridViewContentAlignment.NotSet Then
                e.CellStyle.Alignment 
    = DataGridViewContentAlignment.MiddleCenter
            
    End If
            
    Dim gridBrush As Brush = New SolidBrush(Me.GridColor)
            
    'Dim backBrush As SolidBrush = New SolidBrush(e.CellStyle.BackColor)
            Dim backBrush As SolidBrush = New SolidBrush(Color.White)
            
    Dim fontBrush As SolidBrush = New SolidBrush(e.CellStyle.ForeColor)
            
    Dim cellwidth As Integer
            
    Dim UpRows As Integer = 0
            
    Dim DownRows As Integer = 0
            
    Dim count As Integer = 0
            
    If Me.MergeColumnNames.Contains(Me.Columns(e.ColumnIndex).Name) And e.RowIndex <> -1 Then
                cellwidth 
    = e.CellBounds.Width
                
    Dim gridLinePen As Pen = New Pen(gridBrush)
                
    Dim curValue As String = CType(e.Value, String)
                
    IIf(curValue Is Nothing"", e.Value.ToString().Trim())
                
    Dim curSelected As String = CType(Me.CurrentRow.Cells(e.ColumnIndex).Value, String)
                
    IIf(curSelected Is Nothing""Me.CurrentRow.Cells(e.ColumnIndex).Value.ToString().Trim())
                
    'If Not String.IsNullOrEmpty(curValue) Then
                Dim i As Integer
                
    For i = e.RowIndex To Me.Rows.Count - 1 Step i + 1
                    
    If Me.Rows(i).Cells(e.ColumnIndex).Value.ToString().Equals(curValue) Then

                        DownRows 
    = DownRows + 1
                        
    If e.RowIndex <> i Then
                            cellwidth 
    = cellwidth
                            
    IIf(cellwidth < Me.Rows(i).Cells(e.ColumnIndex).Size.Width, cellwidth, Me.Rows(i).Cells(e.ColumnIndex).Size.Width)
                        
    End If
                    
    Else
                        
    Exit For
                    
    End If
                
    Next

                
    Dim j As Integer
                
    For j = e.RowIndex To 0 Step j - 1
                    
    If Me.Rows(j).Cells(e.ColumnIndex).Value.ToString().Equals(curValue) Then

                        UpRows 
    = UpRows + 1
                        
    If e.RowIndex <> j Then
                            cellwidth 
    = cellwidth
                            
    IIf(cellwidth < Me.Rows(j).Cells(e.ColumnIndex).Size.Width, cellwidth, Me.Rows(j).Cells(e.ColumnIndex).Size.Width)
                        
    End If
                    
    Else
                        
    Exit For
                    
    End If
                
    Next

                count 
    = DownRows + UpRows - 1
                
    If count < 2 Then
                    
    Return
                
    End If
                
    'End If
                If Me.Rows(e.RowIndex).Selected Then
                    backBrush.Color 
    = e.CellStyle.SelectionBackColor
                    fontBrush.Color 
    = e.CellStyle.SelectionForeColor
                
    End If

                e.Graphics.FillRectangle(backBrush, e.CellBounds)

                PaintingFont(e, cellwidth, UpRows, DownRows, count)
                
    If DownRows = 1 Then
                    e.Graphics.DrawLine(gridLinePen, e.CellBounds.Left, e.CellBounds.Bottom 
    - 1, e.CellBounds.Right - 1, e.CellBounds.Bottom - 1)
                    count 
    = 0
                
    End If

                e.Graphics.DrawLine(gridLinePen, e.CellBounds.Right 
    - 1, e.CellBounds.Top, e.CellBounds.Right - 1, e.CellBounds.Bottom - 1)

                e.Handled 
    = True
            
    End If
        
    End Sub


        
    '/ <summary>
        '/ PaintingFont
        '/ </summary>
        Private Sub PaintingFont(ByVal e As System.Windows.Forms.DataGridViewCellPaintingEventArgs, ByVal cellwidth As IntegerByVal UpRows As IntegerByVal DownRows As IntegerByVal count As Integer)
            
    Dim fontBrush As SolidBrush = New SolidBrush(e.CellStyle.ForeColor)
            
    Dim fontheight As Integer = CType(e.Graphics.MeasureString(e.Value.ToString(), e.CellStyle.Font).Height, Integer)
            
    Dim fontwidth As Integer = CType(e.Graphics.MeasureString(e.Value.ToString(), e.CellStyle.Font).Width, Integer)
            
    Dim cellheight As Integer = e.CellBounds.Height

            
    If e.CellStyle.Alignment = DataGridViewContentAlignment.BottomCenter Then
                e.Graphics.DrawString(
    CType(e.Value, String), e.CellStyle.Font, fontBrush, CType(e.CellBounds.X + (cellwidth - fontwidth) / 2Single), e.CellBounds.Y + cellheight * DownRows - fontheight)
            
    ElseIf e.CellStyle.Alignment = DataGridViewContentAlignment.BottomLeft Then
                e.Graphics.DrawString(
    CType(e.Value, String), e.CellStyle.Font, fontBrush, e.CellBounds.X, e.CellBounds.Y + cellheight * DownRows - fontheight)
            
    ElseIf e.CellStyle.Alignment = DataGridViewContentAlignment.BottomRight Then
                e.Graphics.DrawString(
    CType(e.Value, String), e.CellStyle.Font, fontBrush, e.CellBounds.X + cellwidth - fontwidth, e.CellBounds.Y + cellheight * DownRows - fontheight)
            
    ElseIf e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter Then
                e.Graphics.DrawString(
    CType(e.Value, String), e.CellStyle.Font, fontBrush, CType(e.CellBounds.X + (cellwidth - fontwidth) / 2Single), CType(e.CellBounds.Y - cellheight * (UpRows - 1+ (cellheight * count - fontheight) / 2Single))
            
    ElseIf e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft Then
                e.Graphics.DrawString(
    CType(e.Value, String), e.CellStyle.Font, fontBrush, e.CellBounds.X, CType(e.CellBounds.Y - cellheight * (UpRows - 1+ (cellheight * count - fontheight) / 2Single))
            
    ElseIf e.CellStyle.Alignment = DataGridViewContentAlignment.MiddleRight Then
                e.Graphics.DrawString(
    CType(e.Value, String), e.CellStyle.Font, fontBrush, e.CellBounds.X + cellwidth - fontwidth, CType(e.CellBounds.Y - cellheight * (UpRows - 1+ (cellheight * count - fontheight) / 2Single))
            
    ElseIf e.CellStyle.Alignment = DataGridViewContentAlignment.TopCenter Then
                e.Graphics.DrawString(
    CType(e.Value, String), e.CellStyle.Font, fontBrush, e.CellBounds.X + CType((cellwidth - fontwidth) / 2Single), e.CellBounds.Y - cellheight * (UpRows - 1))
            
    ElseIf e.CellStyle.Alignment = DataGridViewContentAlignment.TopLeft Then
                e.Graphics.DrawString(
    CType(e.Value, String), e.CellStyle.Font, fontBrush, e.CellBounds.X, e.CellBounds.Y - cellheight * (UpRows - 1))
            
    ElseIf e.CellStyle.Alignment = DataGridViewContentAlignment.TopRight Then
                e.Graphics.DrawString(
    CType(e.Value, String), e.CellStyle.Font, fontBrush, e.CellBounds.X + cellwidth - fontwidth, e.CellBounds.Y - cellheight * (UpRows - 1))
            
    Else
                e.Graphics.DrawString(
    CType(e.Value, String), e.CellStyle.Font, fontBrush, e.CellBounds.X + CType((cellwidth - fontwidth) / 2Single), CType(e.CellBounds.Y - cellheight * (UpRows - 1+ (cellheight * count - fontheight) / 2Single))
            
    End If
        
    End Sub


        
    '/ <summary>
        '/ MergeColumnNames
        '/ </summary>
        Public Property MergeColumnNames() As List(Of String)
            
    Get
                
    Return _mergecolumnname
            
    End Get
            
    Set(ByVal Value As List(Of String))
                _mergecolumnname 
    = Value
            
    End Set
        
    End Property

        
    Private _mergecolumnname As List(Of String= New List(Of String)()

    End Class


    Imports System
    Imports System.Collections.Generic
    Imports System.ComponentModel
    Imports System.Data
    Imports System.Drawing
    Imports System.Text
    Imports System.Windows.Forms


    Public Class Form1

        
    Public Sub New()
            InitializeComponent()
            
    Dim dt As DataTable = New DataTable()
            
    Dim i As Integer
            dt.Columns.Add(
    "1")
            dt.Columns.Add(
    "2")
            dt.Columns.Add(
    "3")
            dt.Columns.Add(
    "4")
            dt.Columns.Add(
    "5")
            dt.Columns.Add(
    "6")
            dt.Rows.Add(
    "20090601""00001""100""abc""1""sumisu")
            dt.Rows.Add(
    "20080601""00001""120""abc""1""yasio")
            dt.Rows.Add(
    "20070601""00001""150""def""1""toms")
            dt.Rows.Add(
    "20050601""00001""190""efg""1""arabama")
            
    Me.rowMergeView1.DataSource = dt
            
    Me.rowMergeView1.ColumnHeadersHeight = 20
            
    Me.rowMergeView1.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing
            
    For i = 1 To dt.Columns.Count
                
    Me.rowMergeView1.MergeColumnNames.Add("Column" & i)
            
    Next
        
    End Sub

    End Class


    <Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
    Partial 
    Class Form1
        
    Inherits System.Windows.Forms.Form

        
    'フォームがコンポーネントの一覧をクリーンアップするために dispose をオーバーライドします。
        <System.Diagnostics.DebuggerNonUserCode()> _
        
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
            
    Try
                
    If disposing AndAlso components IsNot Nothing Then
                    components.Dispose()
                
    End If
            
    Finally
                
    MyBase.Dispose(disposing)
            
    End Try
        
    End Sub


        
    'Windows フォーム デザイナで必要です。
        Private components As System.ComponentModel.IContainer

        
    'メモ: 以下のプロシージャは Windows フォーム デザイナで必要です。
        'Windows フォーム デザイナを使用して変更できます。  
        'コード エディタを使って変更しないでください。
        <System.Diagnostics.DebuggerStepThrough()> _
        
    Private Sub InitializeComponent()
            
    Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Form1))
            
    Me.Panel1 = New System.Windows.Forms.Panel
            
    Me.Button1 = New System.Windows.Forms.Button
            
    Me.rowMergeView1 = New testMearge.RowMergeView
            
    Me.Column1 = New System.Windows.Forms.DataGridViewTextBoxColumn
            
    Me.Column2 = New System.Windows.Forms.DataGridViewTextBoxColumn
            
    Me.Column3 = New System.Windows.Forms.DataGridViewTextBoxColumn
            
    Me.Column4 = New System.Windows.Forms.DataGridViewTextBoxColumn
            
    Me.Column5 = New System.Windows.Forms.DataGridViewTextBoxColumn
            
    Me.Column6 = New System.Windows.Forms.DataGridViewTextBoxColumn
            
    Me.Panel1.SuspendLayout()
            
    CType(Me.rowMergeView1, System.ComponentModel.ISupportInitialize).BeginInit()
            
    Me.SuspendLayout()
            
    '
            'Panel1
            '
            Me.Panel1.Controls.Add(Me.Button1)
            
    Me.Panel1.Dock = System.Windows.Forms.DockStyle.Bottom
            
    Me.Panel1.Location = New System.Drawing.Point(0312)
            
    Me.Panel1.Name = "Panel1"
            
    Me.Panel1.Size = New System.Drawing.Size(59531)
            
    Me.Panel1.TabIndex = 1
            
    '
            'Button1
            '
            Me.Button1.Location = New System.Drawing.Point(4995)
            
    Me.Button1.Name = "Button1"
            
    Me.Button1.Size = New System.Drawing.Size(7523)
            
    Me.Button1.TabIndex = 0
            
    Me.Button1.Text = "Button1"
            
    Me.Button1.UseVisualStyleBackColor = True
            
    '
            'rowMergeView1
            '
            Me.rowMergeView1.AllowUserToAddRows = False
            
    Me.rowMergeView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill
            
    Me.rowMergeView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
            
    Me.rowMergeView1.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.Column1, Me.Column2, Me.Column3, Me.Column4, Me.Column5, Me.Column6})
            
    Me.rowMergeView1.Dock = System.Windows.Forms.DockStyle.Fill
            
    Me.rowMergeView1.Location = New System.Drawing.Point(00)
            
    Me.rowMergeView1.MergeColumnNames = CType(resources.GetObject("rowMergeView1.MergeColumnNames"), System.Collections.Generic.List(Of String))
            
    Me.rowMergeView1.Name = "rowMergeView1"
            
    Me.rowMergeView1.RowTemplate.Height = 21
            
    Me.rowMergeView1.Size = New System.Drawing.Size(595343)
            
    Me.rowMergeView1.TabIndex = 0
            
    '
            'Column1
            '
            Me.Column1.DataPropertyName = "1"
            
    Me.Column1.HeaderText = "日期"
            
    Me.Column1.Name = "Column1"
            
    '
            'Column2
            '
            Me.Column2.DataPropertyName = "2"
            
    Me.Column2.HeaderText = "代碼"
            
    Me.Column2.Name = "Column2"
            
    '
            'Column3
            '
            Me.Column3.DataPropertyName = "3"
            
    Me.Column3.HeaderText = "價格"
            
    Me.Column3.Name = "Column3"
            
    '
            'Column4
            '
            Me.Column4.DataPropertyName = "4"
            
    Me.Column4.HeaderText = "備注"
            
    Me.Column4.Name = "Column4"
            
    '
            'Column5
            '
            Me.Column5.DataPropertyName = "5"
            
    Me.Column5.HeaderText = "標(biāo)志"
            
    Me.Column5.Name = "Column5"
            
    '
            'Column6
            '
            Me.Column6.DataPropertyName = "6"
            
    Me.Column6.HeaderText = "更新者"
            
    Me.Column6.Name = "Column6"
            
    '
            'Form1
            '
            Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!)
            
    Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
            
    Me.ClientSize = New System.Drawing.Size(595343)
            
    Me.Controls.Add(Me.Panel1)
            
    Me.Controls.Add(Me.rowMergeView1)
            
    Me.Name = "Form1"
            
    Me.Text = "Form1"
            
    Me.Panel1.ResumeLayout(False)
            
    CType(Me.rowMergeView1, System.ComponentModel.ISupportInitialize).EndInit()
            
    Me.ResumeLayout(False)

        
    End Sub

        
    Friend WithEvents rowMergeView1 As RowMergeView
        
    Friend WithEvents Panel1 As System.Windows.Forms.Panel
        
    Friend WithEvents Button1 As System.Windows.Forms.Button
        
    Friend WithEvents Column1 As System.Windows.Forms.DataGridViewTextBoxColumn
        
    Friend WithEvents Column2 As System.Windows.Forms.DataGridViewTextBoxColumn
        
    Friend WithEvents Column3 As System.Windows.Forms.DataGridViewTextBoxColumn
        
    Friend WithEvents Column4 As System.Windows.Forms.DataGridViewTextBoxColumn
        
    Friend WithEvents Column5 As System.Windows.Forms.DataGridViewTextBoxColumn
        
    Friend WithEvents Column6 As System.Windows.Forms.DataGridViewTextBoxColumn

    End Class


    運(yùn)行結(jié)果如下:
     
    原C#代碼:
    /Files/xiekai-blog/DataGridView.rar
    posted on 2009-06-17 12:36 小言身寸 閱讀(12687) 評論(18)  編輯  收藏 所屬分類: . NET 開發(fā)

    評論:
    # re: vb.net中dataGridView的單元格的合并 2010-01-20 14:09 | JonesVale
    請問以下代碼是如何所得 ,請指點(diǎn),謝謝!
    '
    'rowMergeView1
    '
    Me.rowMergeView1.AllowUserToAddRows = False
    Me.rowMergeView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill
    Me.rowMergeView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
    Me.rowMergeView1.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.Column1, Me.Column2, Me.Column3, Me.Column4, Me.Column5, Me.Column6})
    Me.rowMergeView1.Dock = System.Windows.Forms.DockStyle.Fill
    Me.rowMergeView1.Location = New System.Drawing.Point(0, 0)
    Me.rowMergeView1.MergeColumnNames = CType(resources.GetObject("rowMergeView1.MergeColumnNames"), System.Collections.Generic.List(Of String))
    Me.rowMergeView1.Name = "rowMergeView1"
    Me.rowMergeView1.RowTemplate.Height = 21
    Me.rowMergeView1.Size = New System.Drawing.Size(595, 343)
    Me.rowMergeView1.TabIndex = 0

      回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2010-01-21 14:44 | JonesVale
    中心是這一句
    Me.rowMergeView1.MergeColumnNames = CType(resources.GetObject("rowMergeView1.MergeColumnNames"), System.Collections.Generic.List(Of String))
      回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2010-04-26 15:53 | youke
    以上代碼在vs2008中需要將and改為andalso  回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2010-12-16 19:56 | pxfinal
    為什么我試了一下,總是顯示“為將對象引用到實(shí)例”,當(dāng)添加
    Me.RowMergeView1.MergeColumnNames.Add("Column" & i)這個時候

    Set(ByVal Value As Collection)
    _mergecolumnname = Value ‘value=nothing
    End Set
    這樣就將這個屬性再次賦值為空了, 無法添加。  回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2011-03-18 14:27 | xiekai
    你好可能把源碼發(fā)給我嗎?
    郵箱:niaiyaolong@163.com
    謝謝!  回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2011-04-16 21:07 | xinbo
    Protected Overrides Sub OnCellPainting(ByVal e As DataGridViewCellPaintingEventArgs) '

    If e.RowIndex > -1 AndAlso e.ColumnIndex > -1 AndAlso e.Value IsNot Nothing(此處添加判斷) Then
    DrawCell(e)
    End If

    End Sub

    修改第二處:

    For i = e.RowIndex To Me.Rows.Count - 1 Step i + 1
    If Me.Rows(i).Cells(e.ColumnIndex).Value Is Nothing Then
    Exit For
    End If ‘添加一個判斷
    If Me.Rows(i).Cells(e.ColumnIndex).Value.ToString().Equals(curValue) Then

    DownRows = DownRows + 1
    If e.RowIndex <> i Then
    cellwidth = cellwidth
    IIf(cellwidth < Me.Rows(i).Cells(e.ColumnIndex).Size.Width, cellwidth, Me.Rows(i).Cells(e.ColumnIndex).Size.Width)
    End If
    Else
    Exit For
    End If
    Next  回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2011-05-10 16:50 | 阿胡
    你好!可發(fā)一份源碼給我嗎?非常感謝!
    nineheads@tom.com
      回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2011-05-23 16:49 | 阿伍
    你好,自學(xué)很久了始終不入門,能給份源碼。非常感謝!郵箱:443272678@QQ.com  回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2011-06-12 18:23 | acicd
    你好可能把源碼發(fā)給我嗎?
    acicd@sohu.com  回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并[未登錄] 2012-11-23 16:55 | KK
    請問可以寄一份 VB 的源碼嗎?
    謝謝您~
    fwt0209@gmail.com  回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2013-02-06 09:27 | icemna
    Me.RowMergeView1.MergeColumnNames = New List(Of String)
    For i = 1 To dt.Columns.Count
    Me.rowMergeView1.MergeColumnNames.Add("Column" & i)
    Next
    對MergeColumnNames賦值(Add)之前要實(shí)例化的。l
      回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2013-02-23 11:03 | 0514
    請問可以寄一份 VB 的源碼嗎?
    謝謝您~
    郵箱:431093685@QQ.com   回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2013-07-08 12:32 | billycwy
    您好,請問可以寄一份VB.net 的源碼嗎?
    萬分感謝
    謝謝您了
    郵箱:8230220@qq.com  回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2013-07-29 19:24 | 芙蓉妮
    期盼許久了......
    原先是用vb做的系統(tǒng),無法實(shí)現(xiàn)單元格合并問題,近期剛剛改學(xué)vb.net,看到樓主已經(jīng)實(shí)現(xiàn)了此功能我欣喜若狂,希望能拜讀到樓主的源碼,萬分感謝
    frownies@139.com
      回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2013-10-30 17:10 | 112
    為什么我選中合并單元格的最后一行,合并單元格的內(nèi)容就會消失  回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2013-11-09 14:10 | Surfing
    可以寄一份vb.net源碼給我嗎?
    ms101690@pchome.com.tw  回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2014-11-18 11:08 | uyfghfv
    你好,可以寄一份源碼給我嗎?keobo.wang@deltaww.com.cn  回復(fù)  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2015-08-28 09:07 | ヒツ
    合并的單元格無法選中,如何解決,還有我想在合并的單元個里繪checkbox怎么弄  回復(fù)  更多評論
      
    主站蜘蛛池模板: 久久免费看黄a级毛片| 免费国产精品视频| 国产亚洲老熟女视频| 亚洲1234区乱码| 久久午夜夜伦鲁鲁片无码免费| 免费亚洲视频在线观看| 亚洲成电影在线观看青青| a级毛片毛片免费观看久潮喷| 四虎影视永久免费观看| avtt天堂网手机版亚洲| 国内精品免费在线观看| 亚洲片国产一区一级在线观看 | 亚洲bt加勒比一区二区| 一个人看的免费观看日本视频www| 成年女性特黄午夜视频免费看| 久久亚洲私人国产精品vA| 两性色午夜免费视频| 免费大黄网站在线看| 亚洲国产精品99久久久久久| 免费成人福利视频| 亚洲天天做日日做天天看| a在线免费观看视频| 亚洲日本在线观看视频| 精品亚洲国产成人av| 我想看一级毛片免费的| 亚洲人成777在线播放| 免费人成视频在线观看网站 | 亚洲精品和日本精品| 亚洲国产AV无码一区二区三区 | 亚洲免费观看在线视频| 亚洲一区二区三区高清| 老司机69精品成免费视频| 亚洲区小说区激情区图片区| 人与动性xxxxx免费| 丁香亚洲综合五月天婷婷| 亚洲AV永久无码精品放毛片| 在线免费观看毛片网站| 亚洲中文无码mv| 无码国产精品久久一区免费| 亚洲人成黄网在线观看| 国产精品视频免费|