cra*_*231 8 c# datagridview winforms
我有一个具有Users表的数据库,我在DataGridView中显示数据.我想删除4列,但我的代码(从MSDN引用)似乎在末尾追加列.我怎样才能完全删除列?
所以这就是DGV看起来没有删除列的方式

我用来检索和删除列的代码
RadarServerEntities rse = new RadarServerEntities();
gvUsers.DataSource = rse.Users;
gvUsers.Columns.Remove("ID");
gvUsers.Columns.Remove("InsertDate");
gvUsers.Columns.Remove("Connections");
gvUsers.Columns.Remove("MachineID");
Run Code Online (Sandbox Code Playgroud)
结果

我想摆脱最后4列,那么为什么我的代码不做呢?
非常感谢 :)
Ale*_*r R 15
我倾向于隐藏字段.
gvUsers.Columns["ID"].Visibility = false;
Run Code Online (Sandbox Code Playgroud)
等等.
如果您不想在绑定时自动创建列DataSource,则需要设置gvUsers.AutoGenerateColumns = false;
RadarServerEntities rse = new RadarServerEntities();
gvUsers.AutoGenerateColumns = false;
gvUsers.DataSource = rse.Users;
Run Code Online (Sandbox Code Playgroud)
要实际删除自动生成的列,您必须在数据绑定后关闭自动生成。
所以代码将是:
RadarServerEntities rse = new RadarServerEntities();
gvUsers.DataSource = rse.Users;
gvUsers.AutoGenerateColumns = false;
gvUsers.Columns.Remove("ID");
gvUsers.Columns.Remove("InsertDate");
gvUsers.Columns.Remove("Connections");
gvUsers.Columns.Remove("MachineID");
Run Code Online (Sandbox Code Playgroud)
我还没有检查到底发生了什么,但可能当 DGV 变得可见时,丢失的列会重新自动生成。
因此,使用此解决方案,您可以在绑定数据时生成列,然后将其关闭并删除不需要的列。无法重新生成缺失的列。