gpt4 book ai didi

c# - 按文本而不是值对 Datagridview 的列进行排序

转载 作者:行者123 更新时间:2023-11-30 19:34:11 25 4
gpt4 key购买 nike

我的 datagridview 中有一列是组合框列。我希望它按它的显示值(即文本)而不是它的值(在本例中,是来自数据库的 int 列表)排序。

我该怎么做?

最佳答案

您可以通过重写 DataGridView 上的 SortCompare 事件来做到这一点:

Occurs when the DataGridView compares two cell values to perform a sort operation

并让它始终按显示值而不是默认值排序。

  1. 连接 SortCompare像这样向 DataGridView 发送事件:
this.dataGridView1.SortCompare += new DataGridViewSortCompareEventHandler(dataGridView1_SortCompare);
  1. 然后添加事件处理程序以按每个 Cell 对所有列进行排序的 FormattedValue属性而不是 Value属性(这是默认值)。
void dataGridView1_SortCompare(object sender, DataGridViewSortCompareEventArgs e)
{
var dgv = (DataGridView) sender
string value1 = dgv.Rows[e.RowIndex1].Cells[e.Column.Index].FormattedValue.ToString();
string value2 = dgv.Rows[e.RowIndex2].Cells[e.Column.Index].FormattedValue.ToString();

e.SortResult = System.String.Compare(value1, value2);
e.Handled = true;
}

为我工作,并希望能帮助其他人。我只希望 DataGridView 上有一个设置,使它成为默认选项。

关于c# - 按文本而不是值对 Datagridview 的列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2044893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com