我的DataGridViewLinkColumn
出现了问题。单击特定columnIndex
后,我想更改链接列文本。 (请参阅下面的示例)
在上面的示例中,我想更改单击保存的文本(突出显示的文本)。
注意:必须仅在特定的行和列索引
我使用datagridViewColumn
,这是我的代码:(在数据表中绑定时显示链接列,然后显示到数据网格。)
Dim da As New SqlDataAdapter("SELECT DateReq AS [Date Requested],NoHrs AS [# OT Hrs.],status,approved_by FROM tableName" _
& "WHERE requested_by='" & lbluserid.Text & "'" _
& " ORDER BY date_request ASC", Constr)
Dim dt As New DataTable
ds.Clear()
da.Fill(dt)
dg.DataSource = dt
dg.Columns.Add(lnkEdit)
lnkEdit.HeaderText = ""
lnkEdit.Name = "edit"
lnkEdit.Text = "Edit"
lnkEdit.UseColumnTextForLinkValue = True
dg.Columns(4).Width = 45
dg.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
dg.Columns.Add(lnkCancel)
lnkCancel.HeaderText = ""
lnkCancel.Name = "cancel"
lnkCancel.Text = "Cancel"
lnkCancel.UseColumnTextForLinkValue = True
dg.Columns(5).Width = 45
dg.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopCenter
答案 0 :(得分:2)
只需处理CellContentClick事件,获取正确的单元格并设置其值:
' If your DataGridView is named dataGridView1: '
Private Sub dataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles dataGridView1.CellContentClick
dataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = "Saved"
End Sub
请注意,您的问题是DataGridViewLinkCell
显示Value
(UseColumnTextForLinkValue == false
时),或显示Text
DataGridViewLinkColumn
({1}} UseColumnTextForLinkValue == true
)。
因此,如果您想在运行时更改链接的文本,则必须设置UseColumnTextForLinkValue = false
,并事先使用文本Edit
填充单元格,例如类似的东西:
For Each row in dg.Rows
row(your_link_column).Value = "Edit"
Next