如果控件名称在 Datagridview 中则禁用控件
Disable Controls if the Control Name is in the Datagridview
我希望这个问题能让我了解我的问题,不要让我看到负面帖子。
我会尽力解释这个问题。
在这里。
我有一个数据网格视图,它看起来像这样
我有一个 MainForm
和以下控件,它们是
PictureBox2
PictureBox3
PictureBox4
PictureBox5
PictureBox6
PictureBox7
正如您在上图中看到的 Control Name
列与我的 MainForm
中的名称相同
据我所知,在 VB.Net 中 All 或如果不是 Most 的控件 Enable 是 True 并且False,因此您在图像上方看到的列 Access
具有 True 和 False 的值。
现在这是我的问题:如何基于Datagridview 找到MainForm
和Enable\Disable 中的控件?我的意思是根据 Datagridview 中的内容找到控件名称并启用禁用它。
我希望你明白我的意思,如果我是对的,代码可能看起来像这样
Sub MenuControls()
'Sample but not working
For Each row As DataGridViewRow In DataGridView1.Rows
"Control Name".Enabled = "Access"
Next
End Sub
访问行单元格的值时使用列的名称作为单元格中的索引器 collection。然后可以使用 Form (Me) 控件找到相对控件 collection
Public Sub EnablePictures()
Dim Enable As Boolean
For Each row As DataGridViewRow In DataGridView1.Rows
Enable = Convert.ToBoolean(row.Cells("Access").Value)
Dim ctrl = Me.Controls(row.Cells("Control Name").Value)
if ctrl IsNot Nothing Then
ctrl.Enabled = Enable
End If
Next
End Sub
这段代码做了很多假设。首先,您的列应该完全按照图像中显示的名称命名(我看到 Header 标题,而不是真正的列名称),然后我假设您将 PictureBoxes 作为表单控件 collection 的子项。如果它们包含在不同的控件(组框、面板...)中,您应该使用该容器的控件 collection。
我已经根据之前的代码创建了一个 Sub 来帮助您解决下面评论中所述的问题。这样你就可以在需要的时候调用这个 sub。因此,如果您动态添加 picurebox 控件,您可以在将它们添加到您的表单后立即调用子程序
我希望这个问题能让我了解我的问题,不要让我看到负面帖子。
我会尽力解释这个问题。
在这里。
我有一个数据网格视图,它看起来像这样
我有一个 MainForm
和以下控件,它们是
PictureBox2
PictureBox3
PictureBox4
PictureBox5
PictureBox6
PictureBox7
正如您在上图中看到的 Control Name
列与我的 MainForm
据我所知,在 VB.Net 中 All 或如果不是 Most 的控件 Enable 是 True 并且False,因此您在图像上方看到的列 Access
具有 True 和 False 的值。
现在这是我的问题:如何基于Datagridview 找到MainForm
和Enable\Disable 中的控件?我的意思是根据 Datagridview 中的内容找到控件名称并启用禁用它。
我希望你明白我的意思,如果我是对的,代码可能看起来像这样
Sub MenuControls()
'Sample but not working
For Each row As DataGridViewRow In DataGridView1.Rows
"Control Name".Enabled = "Access"
Next
End Sub
访问行单元格的值时使用列的名称作为单元格中的索引器 collection。然后可以使用 Form (Me) 控件找到相对控件 collection
Public Sub EnablePictures()
Dim Enable As Boolean
For Each row As DataGridViewRow In DataGridView1.Rows
Enable = Convert.ToBoolean(row.Cells("Access").Value)
Dim ctrl = Me.Controls(row.Cells("Control Name").Value)
if ctrl IsNot Nothing Then
ctrl.Enabled = Enable
End If
Next
End Sub
这段代码做了很多假设。首先,您的列应该完全按照图像中显示的名称命名(我看到 Header 标题,而不是真正的列名称),然后我假设您将 PictureBoxes 作为表单控件 collection 的子项。如果它们包含在不同的控件(组框、面板...)中,您应该使用该容器的控件 collection。
我已经根据之前的代码创建了一个 Sub 来帮助您解决下面评论中所述的问题。这样你就可以在需要的时候调用这个 sub。因此,如果您动态添加 picurebox 控件,您可以在将它们添加到您的表单后立即调用子程序