This code will create CheckBox for each column from list and add it to FlowLayoutPanel:
var columns = new List<string>() { "First column", "Second column", "Third column" };
foreach (var column in columns)
{
var checkBox = new CheckBox();
checkBox.Text = column;
checkBox.Checked = false;
flowLayoutPanel1.Controls.Add(checkBox);
}
This part will return list of checked columns names:
var checkedColumns = new List<string>();
foreach (CheckBox checkBox in flowLayoutPanel1.Controls)
{
if (checkBox.Checked)
{
checkedColumns.Add(checkBox.Text);
}
}
Another solution is to use CheckedListBox component.
Add columns to checkedBoxList:
var columns = new List<string>() { "First column", "Second column", "Third column" };
foreach (var column in columns)
{
checkedListBox1.Items.Add(column);
}
Retrieve checked column names:
var checkedColumns = new List<string>();
foreach (string item in checkedListBox1.CheckedItems)
{
checkedColumns.Add(item);
}
Hope I helped you.