在datagridview上没有显示字形

本文关键字:显示 字形 datagridview | 更新日期: 2023-09-27 18:16:49

我有一个带有一些可编程排序列的datagridview,排序本身是在鼠标单击时完成的。我可以获得字形方向属性,但没有字形显示。

知道为什么吗?

private void gvRules_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
  var column = gvRules.Columns[e.ColumnIndex];
  var sortGlyphDirection = column.HeaderCell.SortGlyphDirection;
  if (column.SortMode != DataGridViewColumnSortMode.Programmatic)
    return;
  switch (sortGlyphDirection)
  {
    case System.Windows.Forms.SortOrder.None:
    case System.Windows.Forms.SortOrder.Ascending:
      gvRules.Sort(column, ListSortDirection.Ascending);
      break;
    case System.Windows.Forms.SortOrder.Descending:
      gvRules.Sort(column, ListSortDirection.Descending);
      break;
    default:
      break;
  }
}

在datagridview上没有显示字形

找到了:

private void gvRules_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
    {
        // Put each of the columns into programmatic sort mode.
        foreach (DataGridViewColumn column in ((DataGridView)sender).Columns)
        {
            column.SortMode = DataGridViewColumnSortMode.Programmatic;
        }
    }

需要设置列。SortMode又是可编程的

必须在设置GridView数据源

之后设置SortGlyphDirection