我在C#上以方法方式清除文本文本框中的代码:
public void clearThis(List<TextBox> txtbox){
foreach (TextBox nTxtbox in txtbox){
nTxtbox.Text = "";
}
}
需要帮助,如何通过我的文本框:
clearThis(Arrays.asList(textbox1,textbox2,textbox3)); //something like this method.
这是我的示例代码:
private void btnCancel_Click(object sender, EventArgs e){
clearThis();
}
答案 0 :(得分:2)
您可以使用List<T>
构造函数和collection initializer syntax:
clearThis(new List<TextBox>() { textbox1, textbox2, textbox3 });
您还可以更改方法以获取TextBox[]
数组,并使用params
modifier进行标记:
public void clearThis(params TextBox[] txtbox){
foreach (TextBox nTxtbox in txtbox){
nTxtbox.Text = "";
}
}
之后,您可以这样称呼它:
clearThis(textbox1, textbox2, textbox3);
答案 1 :(得分:0)
首先,我会将签名更改为接受IEnumerable<TextBox>
而不是List<TextBox>
。您唯一要做的就是枚举参数,因此您需要的唯一功能是可枚举的功能。这将允许您传递任何TextBox
对象序列,而不仅仅是列表。
其次,我们必须弄清楚你需要哪些文本框。如果你已经知道自己想要什么,那么你可以简单地将它们放入TextBox[]
(这是一个可枚举的):
clearThis(new TextBox[] { txtOne, txtTwo, txtThree });
或者,您可以传入其他一些可枚举的内容,例如:
clearThis(Controls.OfType<TextBox>());
(请注意,这会进行浅层搜索。要执行深度搜索,请考虑使用我为其他答案编写的this method。然后您只需执行clearThis(GetControlsOfType<TextBox>(this))
。)
答案 2 :(得分:0)
如果要清除表单上的TextBox,可以使用此方法
void ClearAllText(Control formTest)
{
foreach (Control c in formTest.Controls)
{
if (c is TextBox)
((TextBox)c).Clear();
else
ClearAllText(c);
}
}