从datagridview动态删除列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从datagridview动态删除列相关的知识,希望对你有一定的参考价值。
我正在将数据集绑定到datagridview,我想让用户有可能删除(可能是通过复选框?)他不知道要看的列。
所以,一开始他看到5列,他只想看三个,所以他点击了什么,这些列消失了。
你用什么来给用户这个功能?
答案
如果您使用了复选框,则会出现以下情况:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox c = (CheckBox)sender;
if (c.Checked)
Column1.Visible = true;
else
Column1.Visible = false;
}
您只需将Column1名称修改为要显示/隐藏的任何列,并将事件链接到正确的复选框。
在Form的构造函数中,我会做类似Checkbox1.checked = true;
的事情,所以第一个_CheckChanged会隐藏它,但这取决于你。
另一答案
我相信你只需将特定列的可见标志设置为false即可完成此操作。
另一答案
我建议如下:
创建一个checkedListBox并为其中的每个列添加一个CheckBox项,这是代码:
foreach (DataGridViewColumn column in dataGridView1.Columns)
{
checkedListBox1.Items.Add(column.HeaderText, column.Visible);
checkedListBox1.ItemCheck += (ss, ee) =>
{
if (checkedListBox1.SelectedItem != null)
{
var selectedItem = checkedListBox1.SelectedItem.ToString();
dataGridView1.Columns[selectedItem].Visible = ee.NewValue == CheckState.Checked;
}
};
}
祝好运!
以上是关于从datagridview动态删除列的主要内容,如果未能解决你的问题,请参考以下文章