将单元格更改为DataGridView中的按钮

时间:2014-08-14 07:49:22

标签: vb.net datagridview

我有一个数据绑定DataGridView。我希望两列的单元格包含一个按钮而不是常规单元格 编辑:解决了,现在我需要弄清楚当Cell包含NULL时如何禁用按钮。

要启用将列添加到DataBound Datagridview的指定位置,我们必须在添加列之前将Datagridviews AutoGenerateColumns属性设置为False。
如果不这样做,将添加的所有列都将放在Datagridview的最右端,它也会影响第一个列。

但请记住,Colummn.Index属性会受到影响。

dgv_dt is a DataTable  
dgv is the DataGridView  

dgv.AutoGenerateColumns=True

dgv.DataSource=dgv_dt
dgv.ClearSelection
dgv.Columns(0).HeaderText="FirstName"
dgv.Columns(1).HeaderText="Company ID"
dgv.Columns(2).HeaderText="Recent Picture"
dgv.Columns(2).Visible=False
dgv.Columns(3).HeaderText="Address"
dgv.Columns(4).HeaderText="Alive"

dgv.AutoGenerateColumns=False

Dim btn As New DataGridViewButtonColumn()
btn.HeaderText = "Click Data"
btn.Text = "Click Here"
btn.Name = "btn"
dgv.Columns.Insert(2,btn)

上面的代码将显示Datagridview及其Column.Index,如下所示:

dgv.Columns(1) First Name
dgv.Columns(2) Company ID
dgv.Columns(3) Recent Picture 'This column is hidden, if this Contains NULL, ButtonCell is enabled/clickable
dgv.Columns(0) ButtonCell
dgv.Columns(4) Address
dgv.Columns(5) Alive

公司ID 最近图片包含BLOB或NULL,如果是BLOB,则单元格将为启用按钮,如果为NULL,则为禁用按钮。

1 个答案:

答案 0 :(得分:0)

将现有列设置为隐藏.Visible = false 然后添加DataGridViewButtonColumn并检查CompanyID

的值

如果BLOB,则启用按钮列 如果NULL则禁用按钮列