通過控件名返回控件對象、反射
在WINFORM程序中,我們經常會遇到一種情況,即知道某一控件的名稱,需要直接將該名稱轉換成控件對象。這樣我們就可以使用該控件的某個屬性或者方法。比如,假設現在有一個按鈕控件,其名稱為"button1
在WINFORM程序中,我們經常會遇到一種情況,即知道某一控件的名稱,需要直接將該名稱轉換成控件對象。這樣我們就可以使用該控件的某個屬性或者方法。比如,假設現在有一個按鈕控件,其名稱為"button1",我們想要將其Enabled屬性設置為False。下面介紹兩種方法來實現這一目標。
方法一:通過查找控件名稱的方法返回等值控件對象
```csharp
("button1", True)(0).Enabled False
```
以上方法是在窗體中查找所有名稱為"button1"的對象,并返回數組。我們可以通過取數組中的第一個對象來獲取該控件。
方法二:通過反射的方法獲取對象
首先,我們需要準備一個函數,該函數根據對象名稱返回該對象。
```csharp
Function GetObj(ByVal Pobj As Object, ByVal ObjName As String) As Object
Return ().GetField("_" ObjName, Or Or ).GetValue(Pobj)
End Function
```
然后,我們可以直接調用上述函數來獲取控件對象并設置其Enabled屬性為False。
```csharp
GetObj(Me, "button1").Enabled False
```
其中,Pobj參數表示當前對象的容器,一般使用Me表示當前窗體對象。
通過上述兩種方法,我們可以方便地根據控件名稱獲取對應的控件對象,并進行進一步的操作。這在編寫WINFORM程序時非常有用,能夠提高開發(fā)效率。