可以通过点击其DataGridView
之一对ColumnHeaderCell
进行排序。但是我想要一个包含每行索引的列保持固定。
我的意思是当我点击另一个列标题时,网格行应该按照该列的内容进行排序,除了包含行索引的第一列之外的所有内容。
抱歉!我无法发布图片!
答案 0 :(得分:1)
试试这个
Int32 columnIndex = 1;// Index of the column you want as to be not sortable
DataGridView.Columns[columnIndex].SortMode = DataGridViewColumnSortMode.NotSortable;
并确保在填充数据后执行此操作。
答案 1 :(得分:1)
如果您的意思是打破行:如果不完全重新创建它们,就不能这样做。行是一个带有列的单元,它们只能作为一个单元移动。
但是,如果您希望一列始终包含可见行号,则只需在每次排序后重新填充该列:
private void dataGridView1_Sorted(object sender, EventArgs e)
{
dataGridView1.SuspendLayout();
int yourindex = 0; // whichever column your index is at
foreach (DataGridViewRow row in dataGridView1.Rows)
row.Cells[yourindex].Value = row.Index;
dataGridView1.ResumeLayout();
}
注意:通过这样做,您将无法重新创建原始排序顺序。这可能不是问题。如果是,您需要包含一个名为“密钥”或“旧订单”的额外列或其他任何内容。