问候所有人,我有一个关于在ListView中绘制行号的问题,就像我在DataGridView中一样。我正在使用Visual Studio 2010。
在我的DataGridView中,我使用以下代码绘制行号:
Private Sub SalesDGV_RowPostPaint(ByVal sender As Object, ByVal e As DataGridViewRowPostPaintEventArgs) Handles SalesDGV.RowPostPaint
'draw the row number
Using b As SolidBrush = New SolidBrush(SalesDGV.RowHeadersDefaultCellStyle.ForeColor)
e.Graphics.DrawString(e.RowIndex + 1, _
SalesDGV.DefaultCellStyle.Font, _
b, _
e.RowBounds.Location.X + 20, _
e.RowBounds.Location.Y + 4)
End Using
End Sub
我的DataGridView中的结果:http://puu.sh/3h4CF.png
我希望我的ListView行号与我的DataGridView具有完全相同的样式,但似乎ListView在默认情况下不支持这样的样式,我需要一个自定义控件(?)
我知道有些人会建议我改用DataGridView,但我使用ListView的原因是因为如果不填充数据,DataGridView会给我空区,而ListView允许我使用GridLines而不填充任何数据数据
所以我在这里有两个问题:
谢谢!
答案 0 :(得分:0)
我可以在DataGridView中显示网格线,即使我没有 填充任何数据?如果可能的话,我该如何实现呢?
如果使用空格填充数据表并将其用作数据源,则gridview将具有网格线但似乎没有数据。
这样的事情:
Dim dt As New DataTable
'Column to hold row numbers
dt.Columns.Add(" ")
'Number of columns
For I = 1 To 5
dt.Columns.Add(I.ToString)
Next
'Number of rows
For I = 1 To 10
'Extra column holds the row number
dt.Rows.Add({I.ToString," ", " ", " ", " ", " "})
Next
SalesDGV.DataSource = dt
如何插入它以便网格线仍然存在并且那样 数据是否相应地插入行中?
将数据放入数据表中。只需检查空数据并将其作为空格。如果要从数据库添加数据,一种方法是遍历数据表的列和行,查找空数据并将其更改为空格。如果数据来自文件,您可能已经有一个可用于修改数据的循环。