【发布时间】:2011-02-06 19:40:37
【问题描述】:
datagridview 有问题。
一开始我禁用列中的排序(dictionaryDataGridView_ColumnAdded 和设计器)
当我双击列标题排序启用时。
而且它有效。
当我再次双击禁用列标题时。
当我检查此列的 SortMode 是 NotSortable 时。
太好了。
但是,当我现在更改行中的值时,它会对我的列进行排序。
这对用户来说非常有压力,因为我无法中止这种排序。
在dictionaryDataGridView_CellEndEdit 中,我看到SortGlyphDirection 设置为None,SortMode 设置为NotSortable,所以它无法排序,但可以排序。
有谁知道这是为什么?是datagridview中的错误,还是我错过了什么?
private void dictionaryDataGridView_ColumnHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.ColumnIndex == 0)
{
var column = dictionaryDataGridView.Columns[e.ColumnIndex];
if (column.SortMode != DataGridViewColumnSortMode.Programmatic)
{
column.SortMode = DataGridViewColumnSortMode.Programmatic;
dictionaryDataGridView.Sort(this.dictionaryDataGridView.Columns[0], ListSortDirection.Ascending);
this.dictionaryDataGridView.Columns[0].SortMode = DataGridViewColumnSortMode.Programmatic;
this.dictionaryDataGridView.Columns[0].HeaderCell.SortGlyphDirection = SortOrder.Ascending;
}
else
{
column.SortMode = DataGridViewColumnSortMode.NotSortable;
}
}
}
private void dictionaryDataGridView_ColumnAdded(object sender, DataGridViewColumnEventArgs e)
{
e.Column.SortMode = DataGridViewColumnSortMode.NotSortable;
}
private void dictionaryDataGridView_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
var aaa = this.dictionaryDataGridView.Columns[0].HeaderCell.SortGlyphDirection;
}
【问题讨论】:
标签: winforms sorting datagridview