Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Winforms 无法在datagridview中禁用排序_Winforms_Sorting_Datagridview - Fatal编程技术网

Winforms 无法在datagridview中禁用排序

Winforms 无法在datagridview中禁用排序,winforms,sorting,datagridview,Winforms,Sorting,Datagridview,我对datagridview有问题 开始时,我在columndictionaryDataGridView\u ColumnAdded和designer中禁用排序 当我双击columnheader时,将启用排序 它是有效的 当我再次双击columnheader时 当我检查此列的SortMode时,它是不可排序的 那太好了 但是,当我现在更改行中的值时,它会对我的列进行排序 这对用户来说是非常有压力的,因为用户看不到他的行,对我来说也是如此,因为我无法中止排序 在dictionaryDataGrid

我对datagridview有问题

开始时,我在columndictionaryDataGridView\u ColumnAdded和designer中禁用排序

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

它是有效的

当我再次双击columnheader时

当我检查此列的SortMode时,它是不可排序的

那太好了

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

这对用户来说是非常有压力的,因为用户看不到他的行,对我来说也是如此,因为我无法中止排序

在dictionaryDataGridView_CellEndEdit中,我看到SortGlyphDirection被设置为None,SortMode被设置为NotSortable,因此它不能排序,而是排序

有人知道为什么吗?是datagridview中的bug,还是我遗漏了什么

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;
}

好的,我找到了答案。这不可能做到: