![](/img/trans.png)
[英]How to check the controls (display name and type) in the GroupBox by recursion and display on a DataGridView?
[英]Disable Controls if the Control Name is in the Datagridview
我希望這個問題能夠讓我了解我的問題並且不會把我帶到負面的帖子。
我會盡力解釋這個問題。
這里是。
我有一個datagridview,它看起來像這樣
我有一個帶有以下控件的MainForm
,它們是
PictureBox2
PictureBox3
PictureBox4
PictureBox5
PictureBox6
PictureBox7
正如您在上面的圖像上看到的Control Name
列在我的MainForm
是相同的名稱
據我所知,在VB.Net中, 全部或者不是大多數控件啟用是True和False,因此您在Image上看到的內容Access
列上的值為True和False。
現在這是我的問題:如何在MainForm
找到控件並根據Datagridview啟用\\禁用它? 我的意思是根據Datagridview中的whats找到控件名稱並啟用Disable it it。
我希望你明白我的意思,如果我正確,代碼可能看起來像這樣
Sub MenuControls()
'Sample but not working
For Each row As DataGridViewRow In DataGridView1.Rows
"Control Name".Enabled = "Access"
Next
End Sub
使用列的名稱作為單元格集合中的索引器來訪問行單元格的值。 然后可以使用Form(Me)控件集合來查找相對控件
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
這段代碼做了很多假設。 首先,你的列應該在圖像中顯示的名稱(我看到標題標題,而不是真正的列名稱),然后我假設你有PictureBoxes作為表單控件集合的子項。 如果它們包含在不同的控件(groupbox,panel ...)中,則應使用該容器的Controls集合。
我在上面的代碼中創建了一個Sub來幫助您解決下面評論中提到的問題。 通過這種方式,您可以在需要時調用此子。 因此,如果您動態添加picurebox控件,則可以在將其添加到表單后立即調用該子句
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.