无法在datagridview中禁用排序

时间:2011-02-06 19:40:38

标签: winforms sorting datagridview

我对datagridview有疑问。

一开始我在列(dictionaryDataGridView_ColumnAdded和设计师)中禁用排序

当我双击columnheader时,排序启用。

它有效。

当我再次双击柱头处理器禁用时。

当我检查此列的SortMode是NotSortable时。

太好了。

但是,现在我在行中更改了值,它会对我的列进行排序。

对于那些从他的行中看不见的用户来说,这是非常紧张的,对我而言,因为我无法中止这种排序。

dictionaryDataGridView_CellEndEdit我看到SortGlyphDirection设置为NoneSortMode设置为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;
}

1 个答案:

答案 0 :(得分:0)