<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

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


    運行結(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
    請問以下代碼是如何所得 ,請指點,謝謝!
    '
    '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

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

    Set(ByVal Value As Collection)
    _mergecolumnname = Value ‘value=nothing
    End Set
    這樣就將這個屬性再次賦值為空了, 無法添加。  回復  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2011-03-18 14:27 | xiekai
    你好可能把源碼發(fā)給我嗎?
    郵箱:niaiyaolong@163.com
    謝謝!  回復  更多評論
      
    # 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  回復  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2011-05-10 16:50 | 阿胡
    你好!可發(fā)一份源碼給我嗎?非常感謝!
    nineheads@tom.com
      回復  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2011-05-23 16:49 | 阿伍
    你好,自學很久了始終不入門,能給份源碼。非常感謝!郵箱:443272678@QQ.com  回復  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2011-06-12 18:23 | acicd
    你好可能把源碼發(fā)給我嗎?
    acicd@sohu.com  回復  更多評論
      
    # re: vb.net中dataGridView的單元格的合并[未登錄] 2012-11-23 16:55 | KK
    請問可以寄一份 VB 的源碼嗎?
    謝謝您~
    fwt0209@gmail.com  回復  更多評論
      
    # 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)之前要實例化的。l
      回復  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2013-02-23 11:03 | 0514
    請問可以寄一份 VB 的源碼嗎?
    謝謝您~
    郵箱:431093685@QQ.com   回復  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2013-07-08 12:32 | billycwy
    您好,請問可以寄一份VB.net 的源碼嗎?
    萬分感謝
    謝謝您了
    郵箱:8230220@qq.com  回復  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2013-07-29 19:24 | 芙蓉妮
    期盼許久了......
    原先是用vb做的系統(tǒng),無法實現(xiàn)單元格合并問題,近期剛剛改學vb.net,看到樓主已經(jīng)實現(xiàn)了此功能我欣喜若狂,希望能拜讀到樓主的源碼,萬分感謝
    frownies@139.com
      回復  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2013-10-30 17:10 | 112
    為什么我選中合并單元格的最后一行,合并單元格的內(nèi)容就會消失  回復  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2013-11-09 14:10 | Surfing
    可以寄一份vb.net源碼給我嗎?
    ms101690@pchome.com.tw  回復  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2014-11-18 11:08 | uyfghfv
    你好,可以寄一份源碼給我嗎?keobo.wang@deltaww.com.cn  回復  更多評論
      
    # re: vb.net中dataGridView的單元格的合并 2015-08-28 09:07 | ヒツ
    合并的單元格無法選中,如何解決,還有我想在合并的單元個里繪checkbox怎么弄  回復  更多評論
      
    主站蜘蛛池模板: 久久精品国产免费观看三人同眠| 久久亚洲精品无码gv| 无码欧精品亚洲日韩一区| 一本色道久久综合亚洲精品高清| 免费欧洲美女牲交视频| 免费国产在线观看老王影院| 国产特级淫片免费看| 国产一区二区免费在线| 免费A级毛片无码久久版| 免费在线黄色网址| 亚洲性久久久影院| 久久亚洲精品中文字幕三区| 亚洲av永久无码制服河南实里| 久久久亚洲精品视频| 亚洲视频在线不卡| 亚洲激情视频图片| 亚洲GV天堂无码男同在线观看| 亚洲av无码专区在线电影 | 丁香花免费高清视频完整版| 久草视频免费在线| 在线观看的免费网站| 日韩一区二区三区免费体验| 亚洲国产成人久久综合碰| 中文字幕亚洲一区二区va在线| 亚洲精品成人网站在线观看| 99ri精品国产亚洲| 亚洲一区二区三区91| 亚洲aⅴ无码专区在线观看春色| 无遮挡a级毛片免费看| 亚洲免费观看视频| 国产一卡二卡四卡免费| 日本免费观看网站| 国产亚洲精品不卡在线| 亚洲天堂中文资源| 在线观看日本亚洲一区| 日本特黄特色AAA大片免费| 性无码免费一区二区三区在线| a毛片基地免费全部视频| 午夜亚洲av永久无码精品| 国产V亚洲V天堂无码| 亚洲乱码在线观看|