.net 从公共模块中清除多个表单中的所有文本框
我是vb.net的新手,实际上在这里添加了我的第一个问题, 希望我的问题不是太蹩脚 我的项目中有12张表格。 我已经创建了一个“公共”模块,其中的程序和功能将在所有表单中使用 通过其中一个步骤,我打算清除表单中的所有文本框——我所处的任何表单。 这是程序(建议在此处某处……): 我想从任何表单调用它,使用表单名称,这样它将清除该活动表单中的所有文本框 我想我应该用一个变量(比如me.name)来调用这个过程,并在过程本身中添加一个ByVal,但目前还无法实现 等待答复 谢谢。试试这个方法.net 从公共模块中清除多个表单中的所有文本框,.net,vb.net,textbox,refactoring,controls,.net,Vb.net,Textbox,Refactoring,Controls,我是vb.net的新手,实际上在这里添加了我的第一个问题, 希望我的问题不是太蹩脚 我的项目中有12张表格。 我已经创建了一个“公共”模块,其中的程序和功能将在所有表单中使用 通过其中一个步骤,我打算清除表单中的所有文本框——我所处的任何表单。 这是程序(建议在此处某处……): 我想从任何表单调用它,使用表单名称,这样它将清除该活动表单中的所有文本框 我想我应该用一个变量(比如me.name)来调用这个过程,并在过程本身中添加一个ByVal,但目前还无法实现 等待答复 谢谢。试试这个方法 Pu
Public Sub CLEAR_TEXTBOXES(ByVal frm As Form)
For Each txtctrl In frm.Controls.OfType(Of Windows.Forms.TextBox)()
txtctrl.Clear()
Next
End Sub
就这样说吧
CLEAR_TEXTBOXES(Me)
试试这个方法
Public Sub CLEAR_TEXTBOXES(ByVal frm As Form)
For Each txtctrl In frm.Controls.OfType(Of Windows.Forms.TextBox)()
txtctrl.Clear()
Next
End Sub
就这样说吧
CLEAR_TEXTBOXES(Me)
你几乎拥有你所需要的一切。您只需要传递对要清除其文本框的表单的引用 但您可能遇到的一个小问题是,控件也可以有子控件(例如,groupbox中的文本框) 在
.Controls
集合中不会拾取这些控件,因此需要递归方法:
Public Sub ClearTextBoxesFromAControl(ctl As Control)
For Each MyControl As Control In ctl.Controls
If TypeOf MyControl Is TextBox Then
MyControl.Text = ""
End If
If MyControl.HasChildren Then ClearTextBoxesFromAControl(MyControl)
Next
End Sub
由于表单继承自控件,因此只需将表单引用传递给方法,如下所示:
ClearTextBoxesFromAControl(Me)
额外积分:您甚至可以为表单创建一个扩展方法来执行此操作:
在公共
模块中:
<Extension()>
Public Sub ClearAllTextBoxes(ctl As Control)
For Each MyControl As Control In ctl.Controls
If TypeOf MyControl Is TextBox Then
MyControl.Text = ""
End If
If MyControl.HasChildren Then ClearAllTextBoxes(MyControl)
Next
End Sub
公共子ClearAllTextBox(ctl作为控件)
对于每个MyControl作为ctl.Controls中的Control
如果MyControl的类型为TextBox,则
MyControl.Text=“”
如果结束
如果MyControl.HasChildren,则清除所有文本框(MyControl)
下一个
端接头
然后你可以这样称呼它
Me.clearlalltextboxs
你几乎拥有你所需要的一切。您只需要传递对要清除其文本框的表单的引用
但您可能遇到的一个小问题是,控件也可以有子控件(例如,groupbox中的文本框)
在.Controls
集合中不会拾取这些控件,因此需要递归方法:
Public Sub ClearTextBoxesFromAControl(ctl As Control)
For Each MyControl As Control In ctl.Controls
If TypeOf MyControl Is TextBox Then
MyControl.Text = ""
End If
If MyControl.HasChildren Then ClearTextBoxesFromAControl(MyControl)
Next
End Sub
由于表单继承自控件,因此只需将表单引用传递给方法,如下所示:
ClearTextBoxesFromAControl(Me)
额外积分:您甚至可以为表单创建一个扩展方法来执行此操作:
在公共
模块中:
<Extension()>
Public Sub ClearAllTextBoxes(ctl As Control)
For Each MyControl As Control In ctl.Controls
If TypeOf MyControl Is TextBox Then
MyControl.Text = ""
End If
If MyControl.HasChildren Then ClearAllTextBoxes(MyControl)
Next
End Sub
公共子ClearAllTextBox(ctl作为控件)
对于每个MyControl作为ctl.Controls中的Control
如果MyControl的类型为TextBox,则
MyControl.Text=“”
如果结束
如果MyControl.HasChildren,则清除所有文本框(MyControl)
下一个
端接头
然后你可以这样叫它Me.clearlalltextboxs