将包含文本值“true”文本的 datagridview 单元格类型更改为复选框
Posted
技术标签:
【中文标题】将包含文本值“true”文本的 datagridview 单元格类型更改为复选框【英文标题】:change datagridview cell type containing text vaue "true" text to checkbox 【发布时间】:2014-10-13 11:32:56 【问题描述】:我有一个 datagridview,它的单元格的文本值为一列的“True”,下一列应该有一个 Combobox,其中有两个值可供选择(输入和输出)...我想更改单元格类型成为 Combobox 的复选框和单元格类型...如果单元格文本为“true”,则必须选中复选框,如果它为 false 或其中没有任何内容,则必须取消选中方向列中的文本Combobox 值必须设置为 IN 并在其中有一个额外的选项 out ...此 DATA 来自加载的 XML 文件,这就是我将 XML 文件加载到 datagridview 的方式
public void Load(DataGridView dgv)
dgv.Refresh();
XmlReaderxmlFile = XmlReader.Create(@"path/DGVXML.xml",newXmlReaderSettings());
DataSet dataSet = new DataSet();
dataSet.ReadXml(xmlFile);
dgv.DataSource = dataSet.Tables[0];
xmlFile.Close();
datagridview 必须显示如下
【问题讨论】:
使用OnRowDataBound
获取单元格值并插入CheckBox
【参考方案1】:
这就是 iv 添加到 load 方法并 100% 工作的内容
dgv.Refresh();
XmlReader xmlFile = XmlReader.Create(@"/DGVXML.xml", new XmlReaderSettings());
DataSet dataSet = new DataSet();
dataSet.ReadXml(xmlFile);
DataGridView grid = new DataGridView();
var nameColumn = new DataGridViewTextBoxColumn();
nameColumn.Name = "Device Name";
nameColumn.HeaderText = "Device Name";
dgv.Columns.Add(nameColumn);
var checkColumn = new DataGridViewCheckBoxColumn();
checkColumn.Name = "Select";
checkColumn.HeaderText = "Select";
dgv.Columns.Add(checkColumn);
string IN = "IN";
string OUT = "OUT";
var select = new DataGridViewComboBoxColumn();
select.HeaderText = "Direction";
select.Name = "Direction";
select.Items.Add(IN);
select.Items.Add(OUT);
dgv.Columns.Add(select);
foreach (DataRow row in dataSet.Tables[0].Rows)
string DeviceName = row[0].ToString();
bool Enabled = false;
if (row[1].ToString() != "")
Enabled = Convert.ToBoolean( row[1].ToString());
string Direction = row[2].ToString();
DataGridViewRow dgRow = new DataGridViewRow();
dgv.Rows.Add(new object[] DeviceName, Enabled, Direction);
【讨论】:
以上是关于将包含文本值“true”文本的 datagridview 单元格类型更改为复选框的主要内容,如果未能解决你的问题,请参考以下文章
如何将 true 或 false 的值更改为文本值类型 我正在检查整个表中的行 注意该表是数据表类型?