从按钮标签获取文本框
Get textbox from Button Tag
我尝试从 Button.Tag
中获取 TextBox
。
我有 X 个按钮,每个 Button
都有一个自己的 TextBox
。
不是我想要所有按钮的一种点击方法并从 Button.Tag
获得正确的 TextBox
,但这不起作用。
有人可以帮我解决这个问题吗?
Dim Textbox As TextBox = CType(DirectCast(sender, Button).Tag, TextBox)
Textbox.Text = ""
使用此代码我得到以下异常:
System.InvalidCastException: "Das Objekt des Typs "System.String" kann nicht in Typ "System.Windows.Forms.TextBox" umgewandelt werden."
您的代码试图将 String
(TextBox
的名称)转换为 TextBox
,这不会起作用。
所以你要么必须通过这样的代码分配 TextBox
:
Button1.Tag = TextBox1
Button2.Tag = TextBox2
...
或通过名称查找 TextBox
,如下所示:
Dim Textboxname As String = DirectCast(sender, Button).Tag.ToString()
Dim Textbox As TextBox = DirectCast(Me.Controls.Find(Textboxname, True).First(), TextBox)
Textbox.Text = ""
我尝试从 Button.Tag
中获取 TextBox
。
我有 X 个按钮,每个 Button
都有一个自己的 TextBox
。
不是我想要所有按钮的一种点击方法并从 Button.Tag
获得正确的 TextBox
,但这不起作用。
有人可以帮我解决这个问题吗?
Dim Textbox As TextBox = CType(DirectCast(sender, Button).Tag, TextBox)
Textbox.Text = ""
使用此代码我得到以下异常:
System.InvalidCastException: "Das Objekt des Typs "System.String" kann nicht in Typ "System.Windows.Forms.TextBox" umgewandelt werden."
您的代码试图将 String
(TextBox
的名称)转换为 TextBox
,这不会起作用。
所以你要么必须通过这样的代码分配 TextBox
:
Button1.Tag = TextBox1
Button2.Tag = TextBox2
...
或通过名称查找 TextBox
,如下所示:
Dim Textboxname As String = DirectCast(sender, Button).Tag.ToString()
Dim Textbox As TextBox = DirectCast(Me.Controls.Find(Textboxname, True).First(), TextBox)
Textbox.Text = ""