【发布时间】:2022-01-12 08:51:14
【问题描述】:
这是我的代码:
string ColumnName_Idx="Idx";
表单加载:
DataGridViewCheckBoxColumn col1 = new System.Windows.Forms.DataGridViewCheckBoxColumn();
col1.DataPropertyName = "FLAG";
col1.Name = "FLAG";
col1.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
DGV_List.Columns.Add(col1);
DGV_List.Columns.Add(ColumnName_Idx, ColumnName_Idx);
DGV_List.Columns[ColumnName_Idx].Visible = true;
DGV_List.Columns[ColumnName_Idx].DataPropertyName =ColumnName_Idx ;
DGV_List.Columns[ColumnName_Idx].SortMode = DataGridViewColumnSortMode.Programmatic ;
DataTable oData = new DataTable();
oData.Columns.Add("FLAG", typeof(bool));
oData.Columns.Add("FLAG_BASE", typeof(bool));
oData.Columns.Add("FLAG_SELECT", typeof(bool));
oData.Columns.Add("GROUP_NAME");
oData.Columns.Add("TOOL_NAME");
oData.Columns.Add("MODEL_TRIAL_NO");
oData.Columns.Add(ColumnName_Idx, typeof(int));
for (int i = 1; i <= 5; i++)
{
DataRow dr = oData.NewRow();
if(i==1)
dr["FLAG"] = true ;
else
dr["FLAG"] = false;
dr["FLAG_BASE"] = false;
dr["FLAG_SELECT"] = false;
dr["MODEL_TRIAL_NO"] = "test" + i;
oData.Rows.Add(dr);
}
DGV_List.DataSource = oData;
DGV_List.Sort(this.DGV_List.Columns["FLAG"], ListSortDirection.Ascending);
事件单元格点击:
private void DGV_List_CellClick(object sender, DataGridViewCellEventArgs e)
{
this.DGV_List.BeginEdit(true);
for (int i = 0; i < DGV_List.Rows.Count; i++)
{
DGV_List.Rows[i].Cells[ColumnName_Idx].Value = i+1;
}
this.DGV_List.EndEdit();
DGV_List.Sort(this.DGV_List.Columns[ColumnName_Idx], ListSortDirection.Ascending);
}
当我点击复选框列时,DatagridView 的最后一行无法正确排序。
结果:
这是预期结果:
为什么Datagridview的最后一行不能排序?
【问题讨论】:
标签: c# .net winforms datagridview