VB.NET:DataGridView在同一列中的不同按钮

问题描述 投票:-1回答:2

我想初始化一个检查器,检查datagridview中某个列的单元格,如果单元格等于StaffMixname那么按钮文本应该是VIEW如果没有那么按钮文本是LOCKED

到目前为止,这是我的代码。

Dim dgButtonColumn As New DataGridViewButtonColumn
Dim i As Integer
MetroGrid7.Columns.Add(dgButtonColumn)
dgButtonColumn.HeaderText = "Security"
dgButtonColumn.UseColumnTextForButtonValue = True
For i = 0 To MetroGrid7.Rows.Count
    If MetroGrid7.Rows(i).Cells.Item(4).Value.ToString() = StaffMixname.Text Then
       dgButtonColumn.Text = "VIEW"
       dgButtonColumn.Name = "viewBtn"
       dgButtonColumn.ToolTipText = "View"
    Else
       dgButtonColumn.Text = "LOCKED"
       dgButtonColumn.Name = "searchSecurityBtn"
       dgButtonColumn.ToolTipText = "LOCKED"
    End If
Next

enter image description here

我想要的结果就像这个enter image description here

vb.net
2个回答
1
投票

它不像这样工作。在DataGridViewButtonColumn中,每个单元格都包含button但您无法访问它。你可以得到DataGridViewButtonCell并更改这两个属性value and ToolTipTextname没有DataGridViewButtonCell房产。所以要改变它们:

Dim dgButtonColumn As New DataGridViewButtonColumn
Dim i As Integer
MetroGrid7.Columns.Add(dgButtonColumn)
dgButtonColumn.HeaderText = "Security"
'remove this line
'dgButtonColumn.UseColumnTextForButtonValue = True
For i = 0 To MetroGrid7.Rows.Count
    If MetroGrid7.Rows(i).Cells.Item(4).Value.ToString() = StaffMixname.Text Then
       MetroGrid7.Rows(i).Cells.Item(6).Value = "VIEW"
       MetroGrid7.Rows(i).Cells.Item(6).ToolTipText = "View"
    Else
       MetroGrid7.Rows(i).Cells.Item(6).Value = "LOCKED"
       MetroGrid7.Rows(i).Cells.Item(6).ToolTipText = "LOCKED"
   End If
Next

0
投票
Dim status As String
status = status & Me.dgTitleList.CurrentRow.Cells("BDO").Value
status = status & Chr(13)

插入Value DatagridviewColumnString并做到这个条件。

If status = StaffMixname.Text Then
dgButtonColumn.Text = "VIEW"
   dgButtonColumn.Name = "viewBtn"
   dgButtonColumn.ToolTipText = "View"
Else
   dgButtonColumn.Text = "LOCKED"
   dgButtonColumn.Name = "searchSecurityBtn"
   dgButtonColumn.ToolTipText = "LOCKED"
End If

我建议使用BreakPoint并检查StaffMixName.Text是否有Value

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