当在vb.net中的编辑列中单击单元格内容时,如何使datagridview中一列中的特定行可编辑

问题描述 投票:0回答:1

我尝试如果取消代码注释则没有成功

DataGridView2.Columns("Qty").ReadOnly = True
那么它可以编辑,但一列中的所有行,但我想在单击编辑后选择的行中可编辑,如果我移动另一行,则它是只读的 请指导我

谢谢

 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 DataGridView2.DataSource = itrservice.GetLoadStocksoutdetailMaster()
        DataGridView2.Columns("No").ReadOnly = True
        DataGridView2.Columns("Invnop").ReadOnly = True
        DataGridView2.Columns("CodeProduct").ReadOnly = True
        DataGridView2.Columns("Qty").ReadOnly = True
    End Sub
 Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick
 If e.ColumnIndex = 4 Then
                If DataGridView2.SelectedRows.Count = 0 Then
                    Return
                End If
            DataGridView2.Columns("Qty").ReadOnly = False

        End If
    End Sub

查看数据网格视图

vb.net datagridview datagridviewcolumn
1个回答
0
投票

DataGridViewCell
从其所属的column
row
继承ReadOnly属性。将属性设置为
True
意味着您不能使用单元格的
EditingControl
来更改值,只能通过代码更改。

您可以将

DataGridView.EditMode
属性设置为
DataGridViewEditMode.EditProgrammatically
以禁用通过鼠标和按键输入将单元格置于编辑模式。通过
CellContentClick
事件处理程序中的代码,当您单击所选行的链接单元格时,选择给定单元格并将其置于编辑模式。

Qty
单元格置于编辑模式的示例。

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    DataGridView2.DataSource = itrservice.GetLoadStocksoutdetailMaster()
    DataGridView2.EditMode = DataGridViewEditMode.EditProgrammatically
End Sub

Private Sub DataGridView2_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView2.CellContentClick
    If e.ColumnIndex = 4 Then
        DataGridView2.CurrentCell = DataGridView2(3, e.RowIndex)
        DataGridView2.BeginEdit(True)
    End If
End Sub

旁注,IMO

FullRowSelect
在这里不合适。请改用默认的
SelectionMode
值。
    

© www.soinside.com 2019 - 2024. All rights reserved.