我有一个DataGridView
控件,其中包含一系列玩家,以及他们玩了多少游戏,赢了,输了,赢了百分比和高分。我知道默认情况下控件只能按单列排序,但我发现一段代码似乎应该可以工作,但之后不会用数据填充我的控件。
以下是我在我的程序中实现的代码:
' Style the DataGridView table and customise sorting by PERC, WON and then HIGH
With frmHighscores
Dim table As New DataTable()
table.Columns.Add("Name", GetType(String))
table.Columns.Add("P", GetType(Integer))
table.Columns.Add("W", GetType(Integer))
table.Columns.Add("L", GetType(Integer))
table.Columns.Add("%", GetType(Decimal))
table.Columns.Add("High", GetType(Integer))
For l = 0 To 9
table.Rows.Add(LNAME(l), PLAYED(l), WON(l), LOST(l), PERC(l), HIGH(l))
Next
table.DefaultView.Sort = "% Desc, W Desc, High Desc"
.dgvHighscores.DataSource = table
End With
正如您所看到的,我创建了一个表,按3列排序,然后尝试将其作为数据源绑定到我的控件,但控件只显示空单元格;没有数据。数组LNAME()
,PLAYED()
,WON()
,LOST()
,PERC()
和HIGH()
都包含与数据类型相同的数据类型。表。在我尝试使用这种多重排序之前,我最初使用它们直接向控件添加行,但数据没有显示。
我在这里做错了什么?在将table
设置为数据源之后,为什么DataGridView控件不显示数据?
编辑:已添加图片
抱歉图像质量不佳。
答案 0 :(得分:0)
像往常一样,经过一番努力,我已经设法解决了 - 数据就在那里 - 但是因为我已经在表单上的对象中添加了列,所以程序已经在那些结尾添加了它们!我出于好奇而滚动,他们就在那里。
对于尝试使用DataGridView对象进行多列排序的其他人来说,这可能会有所帮助 - 我的原始代码是合理的,但请确保您没有在表单上添加任何列(对象属性)。
从下图中可以看出,它按%排序,然后按W排序,然后排在高位作为决胜局。快乐的日子