简体   繁体   English

数据网格视图中复选框列的默认值

[英]Checkbox column default value in data grid view

I have a csv spec file I read into a List of strings. 我有一个csv spec文件,我已读入字符串列表。 Then add it to a datagridview and add a checkbox column. 然后将其添加到datagridview并添加一个复选框列。 I want to check all of the checkboxes, but nothing has worked. 我想检查所有复选框,但没有任何反应。 Tried looping through each row and setting the value to true, also tried to set the default values needed row event but no luck. 尝试遍历每行并将值设置为true,还尝试设置行事件所需的默认值,但是没有运气。 Any ideas? 有任何想法吗?

DataTable dtSpecs = new DataTable();

string[] tmpHeaders = specList[0].Split(','); 

foreach (var header in tmpHeaders)
{
    dtSpecs.Columns.Add(header, typeof(string));
}

for (int i = 1; i < specList.Count; i++)
{
    dtSpecs.Rows.Add(specList[i].Split(','));
}

dataGridView2.DataSource = dtSpecs;

DataGridViewCheckBoxColumn ckb2 = new DataGridViewCheckBoxColumn();
ckb2.HeaderText = "Enable";
ckb2.ValueType = typeof(bool);
dataGridView2.Columns.Insert(0, ckb2);

//This didn't work
for (int i = 0; i < dataGridView2.Rows.Count; i++)
{
    dataGridView2.Rows[i].Cells[0].Value = true;
}

//This way also didn't work
foreach (DataGridViewRow row in dataGridView2.Rows)
{
    row.Cells[0].Value = true;
}

//Also tried this but still nothing checked
private void dataGridView2_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
{
    e.Row.Cells[0].Value = true;
}

Don't mix UI and data. 不要混用UI和数据。 Since you are using a DataTable as a data storage for the grid, don't create a grid column, add a DataColumn to the data table instead. 由于您将DataTable用作网格的数据存储,因此请勿创建网格列,而DataColumn添加到数据表中。 Like: 喜欢:

var dt = new DataTable();
dt.Columns.Add("Enable", typeof(bool));
var names = specList[0].Split(','); 
for (int c = 0; c < names.Length; c++)
    dt.Columns.Add(names[c]);
for (int i = 1; i < specList.Count; i++)
{
    var dr = dt.Rows.Add();
    dr[0] = true;
    var values = specList[i].Split(',');
    for (int c = 0; c < values.Length; c++)
        dr[1 + c] = values[c];  
}
dataGridView2.DataSource = dt;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM