.net 强制AutoGenerateColumns为布尔数据类型创建DataGridViewTextBoxColumn

.net 强制AutoGenerateColumns为布尔数据类型创建DataGridViewTextBoxColumn,.net,winforms,datagridview,autogeneratecolumn,.net,Winforms,Datagridview,Autogeneratecolumn,我有很多只读数据,我不喜欢DataGridViewCheckBoxColumns的可点击外观,不幸的是,它是呈现布尔数据的默认类型 在使用DataGridView的AutoGenerateColumns之前或之后,是否有任何方法可以强制它生成DataGridViewTextBoxColumns,只打印TRUE或FALSE,而不是DataGridViewCheckBoxColumns 如果在将数据表设置为数据源之前更容易在数据表上解决此问题,那也没问题。我想我会分享我解决上述问题的方法,以防其他

我有很多只读数据,我不喜欢
DataGridViewCheckBoxColumn
s的可点击外观,不幸的是,它是呈现布尔数据的默认类型

在使用
DataGridView
AutoGenerateColumns
之前或之后,是否有任何方法可以强制它生成
DataGridViewTextBoxColumns
,只打印
TRUE
FALSE
,而不是
DataGridViewCheckBoxColumns


如果在将
数据表设置为
数据源之前更容易在
数据表上解决此问题,那也没问题。

我想我会分享我解决上述问题的方法,以防其他人试图完成相同的任务。我只需关闭
AutoGenerateColumns
,通过循环数据表中的列集合来创建自己的列。每次清除数据源和列很重要,以防它们在不同的调用中有所不同。除此之外,我只需从DataTable列设置col name、header和data属性,就可以开始了

“”
''为数据源中的每个数据字段生成DataGridViewTextBox列
''' 
''已生成列和数据的DataGridView
''将源数据作为数据表
''' 
私有子AutoGenerateTextBoxColumns(ByVal dgv作为DataGridView,ByVal dt作为DataTable)
'声明局部变量
作为DataGridViewTextBoxColumn的Dim列
'首先清除数据源和列
如果notisnothing(dgv.DataSource),则dgv.DataSource.Clear()
'为可能不同的列清除路径
如果notisnothing(dgv.Columns),则dgv.Columns.Clear()
'将自动生成列设置为false
dgv.AutoGenerateColumns=False
'为DataGridView生成列
对于每个列,作为dt.列中的DataColumn
column=新的DataGridViewTextBoxColumn()
带柱
.HeaderText=列名称
.DataPropertyName=col.ColumnName
.Name=列名称
以
dgv.Columns.Add(列)
下一个
'将datatable添加为数据源
dgv.DataSource=dt
端接头

我想我应该分享一下我解决上述问题的方法,以防其他人试图完成同样的任务。我只需关闭
AutoGenerateColumns
,通过循环数据表中的列集合来创建自己的列。每次清除数据源和列很重要,以防它们在不同的调用中有所不同。除此之外,我只需从DataTable列设置col name、header和data属性,就可以开始了

“”
''为数据源中的每个数据字段生成DataGridViewTextBox列
''' 
''已生成列和数据的DataGridView
''将源数据作为数据表
''' 
私有子AutoGenerateTextBoxColumns(ByVal dgv作为DataGridView,ByVal dt作为DataTable)
'声明局部变量
作为DataGridViewTextBoxColumn的Dim列
'首先清除数据源和列
如果notisnothing(dgv.DataSource),则dgv.DataSource.Clear()
'为可能不同的列清除路径
如果notisnothing(dgv.Columns),则dgv.Columns.Clear()
'将自动生成列设置为false
dgv.AutoGenerateColumns=False
'为DataGridView生成列
对于每个列,作为dt.列中的DataColumn
column=新的DataGridViewTextBoxColumn()
带柱
.HeaderText=列名称
.DataPropertyName=col.ColumnName
.Name=列名称
以
dgv.Columns.Add(列)
下一个
'将datatable添加为数据源
dgv.DataSource=dt
端接头

如果要继续使用
AutoGenerateColumns=True
DataGridViewCheckBoxColumn
,可以修改外观和行为,使其看起来和行为类似于只读字段

假设您希望以所有CheckBoxCell为目标,可以禁用它们并更改其外观,如下所示:

(DataGridViewRow的)DataGridView1.Rows.Cast中的每一行的
()
对于(DataGridViewCheckBoxCell)()类型的行.Cells.中的每个单元格
cell.ReadOnly=True
cell.FlatStyle=FlatStyle.Flat
cell.Style.ForeColor=Color.DarkSlateGray
下一个
下一个

如果要继续使用
AutoGenerateColumns=True
DataGridViewCheckBoxColumn
,可以修改外观和行为,使其看起来和行为类似于只读字段

假设您希望以所有CheckBoxCell为目标,可以禁用它们并更改其外观,如下所示:

(DataGridViewRow的)DataGridView1.Rows.Cast中的每一行的
()
对于(DataGridViewCheckBoxCell)()类型的行.Cells.中的每个单元格
cell.ReadOnly=True
cell.FlatStyle=FlatStyle.Flat
cell.Style.ForeColor=Color.DarkSlateGray
下一个
下一个

要使其看起来不那么“可点击”,您可以使用自定义设置使其看起来不那么“可点击”,您可以使用自定义设置