我正在将数据集绑定到datagridview,我想让用户有可能删除(可能是通过复选框?)他不知道的列。
所以,一开始他看到5列,他只想看三个,所以他点击了什么,这些列消失了。
您使用什么来为用户提供此功能?
答案 0 :(得分:2)
如果您使用了复选框,则会出现以下情况:
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会隐藏它,但这取决于你。
答案 1 :(得分:1)
我相信你只需将特定列的可见标志设置为false即可完成此任务。
答案 2 :(得分:1)
我建议如下:
创建一个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;
}
};
}
祝你好运!