如何在DataGridView中,一条记录跨两行显示?

时间:2021-05-03 16:19:34
对于查询出来的一条记录(字段:A,B,C,D),因为在一行上显示不开,所以D字段放在另一行上显示,即要实现如下的效果:
A    B    C 
     D      
请教各位大虾,如何实现啊                                                               

17 个解决方案

#1


这样的话就不要用DataGridView ,最好用repeater

#2


但是式样书要求用DataGridView啊,没办法的说

#3


DataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True

#4


看错题了,不好意思,我在看看

#5


To:magicbacon
呵呵,还是谢谢你啊

#6


有什么办法吗

#7


Public Class Form1

    Dim conn As Data.OleDb.OleDbConnection
    Dim da As Data.OleDb.OleDbDataAdapter
    Dim ds As Data.DataSet

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        DataGridView1.Columns.Add("Col1", "Col1")
        DataGridView1.Columns.Add("Col2", "Col2")
        DataGridView1.Columns.Add("Col3", "Col3")
        conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=D:\data.mdb")
        conn.Open()
        da = New OleDb.OleDbDataAdapter("SELECT * FROM 表2", conn)
        ds = New Data.DataSet
        Dim count As Int32 = da.Fill(ds)
        For i As Int32 = 0 To count - 1
            Dim r As String() = {ds.Tables(0).Rows(i).Item(0).ToString, ds.Tables(0).Rows(i).Item(1).ToString, ds.Tables(0).Rows(i).Item(2).ToString}
            DataGridView1.Rows.Add(r)
            Dim r2 As String() = {"", ds.Tables(0).Rows(i).Item(3).ToString, ""}
            DataGridView1.Rows.Add(r2)
        Next
    End Sub

End Class

#8


分开添加每一行,一个循环中加入两行,一行三项,一行一项。

#9


顶一下,lz还没回.

#10


不行呀,一行3列,一行1列,无法实现的说

#11


得需要合并单元格,但是datagridview 好像没有这个功能,在网上找了很久,都是要重画单元格,微软就是垃圾,弄得这个控件这么复杂,却连许多实用现实的问题都解决不了,唉。。。

#12


先别骂微软啊,您看了我的程序么,我测试过的,为什么无法实现呢?
您是要在一个单元格里显示四项数据么,可以的,我再改改。

#13


To magicbacon
你的程序确实可以实现一条记录分两行显示,但第二行仍然是3列啊,这个不太符合要求,呵呵,还麻烦你再看一下,谢谢啊

#14


编辑摸板列,让它在哪 就在哪

#15


To lengjing126:
那么怎么编辑模版列呢

#16


datagridview没有模板列吧?

#17


humin1906(HJM)说的repeater是什么东西?控件么?

如果自己的程序写的好,完全可以不用GridView.

#1


这样的话就不要用DataGridView ,最好用repeater

#2


但是式样书要求用DataGridView啊,没办法的说

#3


DataGridView1.DefaultCellStyle.WrapMode = DataGridViewTriState.True

#4


看错题了,不好意思,我在看看

#5


To:magicbacon
呵呵,还是谢谢你啊

#6


有什么办法吗

#7


Public Class Form1

    Dim conn As Data.OleDb.OleDbConnection
    Dim da As Data.OleDb.OleDbDataAdapter
    Dim ds As Data.DataSet

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        DataGridView1.Columns.Add("Col1", "Col1")
        DataGridView1.Columns.Add("Col2", "Col2")
        DataGridView1.Columns.Add("Col3", "Col3")
        conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=D:\data.mdb")
        conn.Open()
        da = New OleDb.OleDbDataAdapter("SELECT * FROM 表2", conn)
        ds = New Data.DataSet
        Dim count As Int32 = da.Fill(ds)
        For i As Int32 = 0 To count - 1
            Dim r As String() = {ds.Tables(0).Rows(i).Item(0).ToString, ds.Tables(0).Rows(i).Item(1).ToString, ds.Tables(0).Rows(i).Item(2).ToString}
            DataGridView1.Rows.Add(r)
            Dim r2 As String() = {"", ds.Tables(0).Rows(i).Item(3).ToString, ""}
            DataGridView1.Rows.Add(r2)
        Next
    End Sub

End Class

#8


分开添加每一行,一个循环中加入两行,一行三项,一行一项。

#9


顶一下,lz还没回.

#10


不行呀,一行3列,一行1列,无法实现的说

#11


得需要合并单元格,但是datagridview 好像没有这个功能,在网上找了很久,都是要重画单元格,微软就是垃圾,弄得这个控件这么复杂,却连许多实用现实的问题都解决不了,唉。。。

#12


先别骂微软啊,您看了我的程序么,我测试过的,为什么无法实现呢?
您是要在一个单元格里显示四项数据么,可以的,我再改改。

#13


To magicbacon
你的程序确实可以实现一条记录分两行显示,但第二行仍然是3列啊,这个不太符合要求,呵呵,还麻烦你再看一下,谢谢啊

#14


编辑摸板列,让它在哪 就在哪

#15


To lengjing126:
那么怎么编辑模版列呢

#16


datagridview没有模板列吧?

#17


humin1906(HJM)说的repeater是什么东西?控件么?

如果自己的程序写的好,完全可以不用GridView.