2

我的DataGridViewLinkColumn. 当特定columnIndex点击时,我想更改链接列文本。(请参见下面的示例) 在此处输入图像描述

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

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

1 回答 1

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

请注意,您的问题是 aDataGridViewLinkCell要么显示它Value(何时UseColumnTextForLinkValue == false),要么显示Text它的DataGridViewLinkColumn(何时UseColumnTextForLinkValue == true)。

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

For Each row in dg.Rows
    row(your_link_column).Value = "Edit"
Next
于 2014-03-04T07:48:07.947 回答