【问题标题】:Getting Invalid Operation Exception Sorting a Datagridview获取对 Datagridview 进行排序的无效操作异常
【发布时间】:2015-05-13 09:15:43
【问题描述】:

这是我的问题,我有一个表单(我们将其命名为 F_report),在这个表单中我有一个 datagridview,我以编程方式添加一些列并填充它们。 我的 F_report 表单用于许多其他表单,以查看如此多报告的结果。

其中一些报表需要 datagridview 列进行排序,但其中一些必须具有不可排序模式。

我在向我的 datagridview 添加新列时需要不可排序列的报告中使用了此代码

For j = 0 To F_report.dgv_report.ColumnCount - 1
    F_report.dgv_report.Columns(j).SortMode = DataGridViewColumnSortMode.NotSortable
Next

这段代码工作正常,但我有一个问题,当我点击 datagridview 的列标题时,我得到了一些奇怪的异常,如下所示:

Column header's SortGlyphDirection cannot be set to Ascending while the column's SortMode is set to NotSortable.

我不希望显示此错误,我该怎么办?

问候

【问题讨论】:

    标签: c# vb.net winforms datagridview


    【解决方案1】:

    请提及您如何向数据网格视图提供数据。您是使用代码填充它还是将其数据源设置为数据表或集合?

    如果您正在设置其数据源,您将无法对数据网格视图进行排序。在这种情况下,您需要对数据源进行排序

    【讨论】:

    • 感谢您的回答,我提供的数据是这样的:F_report.dgv_report.Item("MyColumn", MyRow).Value = "SampleString"
    • 所以,我希望你的 dgv_report.Columns.Add(MyColumn);而MyColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
    • 但我不希望我的 datagridview 列可排序
    【解决方案2】:

    你可以试试

    private void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
    {
    //Manage mouse click here
    }
    

    希望对您有所帮助。

    【讨论】:

    猜你喜欢
    • 2020-01-17
    • 2010-10-02
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 2010-11-12
    相关资源
    最近更新 更多