اینطوری CheckListBox را مقداردهی کن:
public FrmMain()
{
InitializeComponent();
foreach (DataGridViewColumn col in dataGridView1.Columns)
{
checkedListBox1.Items.Add(col.Name);
checkedListBox1.SetItemCheckState(checkedListBox1. Items.Count - 1, CheckState.Checked);
}
}
به صورت زیر هم نمایش یا عدم نمایش را تنظیم کن(آنهایی که تیک خوردن نمایش داده میشن). در ضمن برای این جور کارها از حلقه استفاده نکن، رویداد ItemCheck برای همین جور کارهاست:
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
dataGridView1.Columns[checkedListBox1.Items[e.Index].ToString()].Visible = Convert.ToBoolean(e.NewValue);
}