我有一个数据库,它有一个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");
结果
我想去掉最后4列,那么为什么我的代码没有这样做呢?
非常感谢:)
8条答案
按热度按时间vkc1a9a21#
我倾向于只隐藏字段。
等等
zzzyeukh2#
也可以使用
gvUsers.Columns.RemoveAt(IndexOfColumn);
4xrmg8kj3#
如果不想在绑定
DataSource
时自动创建列,则需要设置gvUsers.AutoGenerateColumns = false;
yiytaume4#
要实际删除自动生成的列,必须关闭数据绑定后的自动生成。
所以代码应该是:
我还没有检查到底发生了什么,但可能在DGV变得可见的那一刻,丢失的列被重新自动生成。
因此,使用此解决方案,您可以在绑定数据时生成列,然后将其关闭并删除不需要的列。丢失的列无法重新生成。
vcudknz35#
h79rfbju6#
我认为在将DataTable传递给DGV之前必须修改它
如下:
这个方法对我很有效
qgelzfjb7#
旧帖子,但真实的的答案是[灵魂掠夺者]的答案。设置
Visible = true
不会删除它,只是隐藏它。所以dataGridView.Columns.Remove("columnToRemove");
是正确的方法。siv3szwd8#
如果你想从
DataGridView
中删除的是你选择的列,那么这段代码适合你。将此代码放在删除按钮中,并准备删除所选的列。