vb.net - VB.NET:DataGridView 同一列中的不同按钮
问题描述
我正在尝试初始化一个检查器,该检查器检查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
解决方案
它不像这样工作。在DataGridViewButtonColumn
每个单元格中都包含一个button
但您无法访问它。你可以得到DataGridViewButtonCell
和改变这两个属性value and ToolTipText
。中没有name
财产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
推荐阅读
- java - Spring Data Couchbase - 获取 java.lang.ArrayIndexOutOfBoundsException:分页查询的索引 1 超出长度 1 的范围
- kubernetes - kubernetes:无法加载现有证书 apiserver-etcd-client:
- windows-10 - 有没有办法离线更新多个笔记本电脑上的 Windows 10?
- html - 在引导卡之间添加间距
- stanford-nlp - 斯坦福 NLP 中的 NLP 函数返回 dtype 错误
- asp.net-core - 有没有办法使用“ASPNET_REGIIS”在.net核心Web应用程序中加密“appsettings.json”
- python - “错误:退出状态为 1 的命令出错:”需要修复
- python - Python在脚本出现异常时发送邮件
- python - github工作流程中的pytest超时
- javascript - 使用 JS 在媒体查询中仅重新加载网页一次