这是关于datagridview排序问题,单击第一列表头没有任何变化,不知道是什么原因?请教高手,相关代码如下:
private void MeterList_dgv_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
this.MeterList_dgv.VirtualMode = false;
this.MeterList_dgv.Columns[e.ColumnIndex].SortMode = DataGridViewColumnSortMode.Automatic;
//this.MeterList_dgv.SelectionMode = DataGridViewSelectionMode.ColumnHeaderSelect;
DataGridViewColumn newColumn = this.MeterList_dgv.Columns[e.ColumnIndex];
DataGridViewColumn oldColumn = this.MeterList_dgv.SortedColumn;
ListSortDirection direction;
if (oldColumn != null)
{
if (oldColumn == newColumn && this.MeterList_dgv.SortOrder == SortOrder.Ascending)
{
direction = ListSortDirection.Descending;
}
else
{
direction = ListSortDirection.Ascending;
oldColumn.HeaderCell.SortGlyphDirection = SortOrder.None;
}
}
else
{
direction = ListSortDirection.Ascending;
}
this.MeterList_dgv.Sort(newColumn, direction);
newColumn.HeaderCell.SortGlyphDirection = direction == ListSortDirection.Ascending ? SortOrder.Ascending : SortOrder.Descending;
this.MeterList_dgv.VirtualMode = true;
}
private void MeterList_dgv_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
this.MeterList_dgv.VirtualMode = false;
this.MeterList_dgv.Columns[e.ColumnIndex].SortMode = DataGridViewColumnSortMode.Automatic;
//this.MeterList_dgv.SelectionMode = DataGridViewSelectionMode.ColumnHeaderSelect;
DataGridViewColumn newColumn = this.MeterList_dgv.Columns[e.ColumnIndex];
DataGridViewColumn oldColumn = this.MeterList_dgv.SortedColumn;
ListSortDirection direction;
if (oldColumn != null)
{
if (oldColumn == newColumn && this.MeterList_dgv.SortOrder == SortOrder.Ascending)
{
direction = ListSortDirection.Descending;
}
else
{
direction = ListSortDirection.Ascending;
oldColumn.HeaderCell.SortGlyphDirection = SortOrder.None;
}
}
else
{
direction = ListSortDirection.Ascending;
}
this.MeterList_dgv.Sort(newColumn, direction);
newColumn.HeaderCell.SortGlyphDirection = direction == ListSortDirection.Ascending ? SortOrder.Ascending : SortOrder.Descending;
this.MeterList_dgv.VirtualMode = true;
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货