![](/img/trans.png)
[英]VB 2010 Unable to cast object of type 'System.String' to type 'System.Windows.Forms.TextBox'
[英]Unable to cast object of type 'System.Windows.Forms.Button' to type > 'System.Windows.Forms.TextBox'
我寫了一個函數,將窗體中的所有TextBox清空:
Private Sub effacer()
For Each t As TextBox In Me.Controls
t.Text = Nothing
Next
End Sub
但是我有這個問題:
無法將類型為“ System.Windows.Forms.Button”的對象轉換為類型為“ System.Windows.Forms.TextBox”的對象。
我試圖添加這個, If TypeOf t Is TextBox Then
但是我有同樣的問題
Controls
集合不僅包含TextBoxes,還包含窗體形式的所有控件。
相反,您可以使用Enumerable.OfType
查找並TextBoxes
所有TextBoxes
:
For Each txt As TextBox In Me.Controls.OfType(Of TextBox)()
txt.Text = ""
Next
如果您想以“守舊派”的方式做同樣的事情:
For Each ctrl As Object In Me.Controls
If TypeOf ctrl Is TextBox
DirectCast(ctrl, TextBox).Text = ""
End If
Next
For Each t As TextBox In Me.Controls
這行代碼試圖將每個控件轉換為TextBox
。
您需要將其更改為As Control
,或在迭代之前使用Me.Controls.OfType(Of TextBox)()
過濾集合。
這行代碼將清除groupBox中所有的radioButtons,並將它們附加到button_click上:
groupBoxName.Controls.OfType<RadioButton>().ToList().ForEach(p => p.Checked = false);
使用適當的更改以使其適應您的需求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.