在控件上添加事件 - 我如何引用控件本身
add event on controls - how can i refer to the control itself
我想在我的多个文本框中添加相同的事件。比方说,我希望我所有的文本框在失去焦点时 trim 自身的文本值
我的想法是遍历所有文本框并为所有文本框添加一个事件处理程序,但我将如何引用文本框本身,我认为这与使用 "this" 关键字相同,但它在 vb.net 中不可用 - 还有其他建议吗?
为了获取触发事件的元素,您可以使用事件的 sender
参数并将其转换为所需的类型。从问题中不清楚您使用的是哪个平台,但下面是 Windows 表单的示例代码:
Private Sub txt1_TextChanged(sender As Object, e As EventArgs) Handles txt1.TextChanged
Dim currentTextbox as TextBox = CType(sender, TextBox)
' Do what you want with the textbox
End Sub
类似的原则也应该适用于 Web 窗体或 WPF。
遍历所有文本框对所有文本框使用句柄
Private Sub TextBox1_LostFocus(sender As Object, e As EventArgs) _
Handles TextBox1.LostFocus, TextBox2.LostFocus
Dim txtBox As TextBox = sender
txtBox.Text = Strings.Trim(txtBox.Text)
End Sub
我想在我的多个文本框中添加相同的事件。比方说,我希望我所有的文本框在失去焦点时 trim 自身的文本值
我的想法是遍历所有文本框并为所有文本框添加一个事件处理程序,但我将如何引用文本框本身,我认为这与使用 "this" 关键字相同,但它在 vb.net 中不可用 - 还有其他建议吗?
为了获取触发事件的元素,您可以使用事件的 sender
参数并将其转换为所需的类型。从问题中不清楚您使用的是哪个平台,但下面是 Windows 表单的示例代码:
Private Sub txt1_TextChanged(sender As Object, e As EventArgs) Handles txt1.TextChanged
Dim currentTextbox as TextBox = CType(sender, TextBox)
' Do what you want with the textbox
End Sub
类似的原则也应该适用于 Web 窗体或 WPF。
遍历所有文本框对所有文本框使用句柄
Private Sub TextBox1_LostFocus(sender As Object, e As EventArgs) _
Handles TextBox1.LostFocus, TextBox2.LostFocus
Dim txtBox As TextBox = sender
txtBox.Text = Strings.Trim(txtBox.Text)
End Sub