HOW TO:单击时更改datagridview LinkColumn文本

时间:2014-03-04 07:31:35

标签: vb.net datagridview datagridviewlinkcolumn

我的DataGridViewLinkColumn出现了问题。单击特定columnIndex后,我想更改链接列文本。 (请参阅下面的示例) enter image description here

在上面的示例中,我想更改单击保存的文本(突出显示的文本)。
注意:必须仅在特定的行和列索引

中进行更改

我使用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

1 个答案:

答案 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显示ValueUseColumnTextForLinkValue == false时),或显示Text DataGridViewLinkColumn({1}} UseColumnTextForLinkValue == true)。

因此,如果您想在运行时更改链接的文本,则必须设置UseColumnTextForLinkValue = false,并事先使用文本Edit填充单元格,例如类似的东西:

For Each row in dg.Rows
    row(your_link_column).Value = "Edit"
Next