簡體   English   中英

無法轉換類型為'System.Windows.Forms.Button'的對象來鍵入>'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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM