如何在 WPF C# 中获取多文本框作为方法的输入参数
Posted
技术标签:
【中文标题】如何在 WPF C# 中获取多文本框作为方法的输入参数【英文标题】:How to get multi textbox as input parameter of a Method in WPF C# 【发布时间】:2021-10-01 03:06:35 【问题描述】:我正在使用 WPF C# Visual Studio
我的公共课程中有一个方法。 我想在方法的参数输入中获取许多文本框。 该方法将在第一个长度文本框中删除零,如下所示:0123 => 123
这是我的方法:
public static void Remove_Zero_atFirst(TextBox TXB2)
TXB2.Text = TXB2.Text.TrimStart('0').Trim();
当我想使用该方法时,我需要的是这样的:
Remove_Zero_atFirst(textbox1,textbox2,textbox3, . . .);
我尝试了什么:
public static class Texchanger
public static void Del_Multi_SepTexs(IEnumerable<TextBox> TXBS)
TXBS.Text = TXBS.Text.TrimStart('0').Trim();
我尝试的那一行有错误:
does not contain a definition for 'Text' and no accessible extension method 'Text' accepting a first argument of type 'IEnumerable<TextBox>' could be found
【问题讨论】:
【参考方案1】:您需要传入一个数组,或者通过指定为最后一个参数来使用可变参数
params TextBox[] 框
然后在里面.. foreach(TextBox tb in box)
【讨论】:
【参考方案2】:这正是params keyword 的用途。
Remove_Zero_atFirst(textbox1,textbox2,textbox3, . . .);
public void Remove_Zero_atFirst(params TextBox[] textboxes)
foreach (TextBox item in textboxes)
item.Text = item.Text.TrimStart('0').Trim();
【讨论】:
【参考方案3】:试试这个:
public static class Texchanger
public static void Del_Multi_SepTexs(IEnumerable<TextBox> TXBS)
foreach (var item in TXBS)
item.Text = item.Text.TrimStart('0').Trim();
调用这个方法使用:
var myTextBoxes = new List<TextBox>()txt1,txt2; Texchanger.Del_Multi_SepratTexs(myTextBoxes);
或者像这样使用多个参数:
ublic static class Texchanger
public static void Del_Multi_SepTexs(params TextBox[] TXBS)
foreach (var item in TXBS)
item.Text = item.Text.TrimStart('0').Trim();
调用方法使用如下:
Texchanger.Del_Multi_SepTexs(txt1,txt2);
【讨论】:
我试过了,但我看到了这个错误:方法 'Del_Multi_SepratTexs' 没有重载需要 2 个参数 我的尝试:Texchanger.Del_Multi_SepratTexs(txt1,txt2); 这增加了必须声明IEnumerable
的复杂性,您可以使用params
关键字来克服它。我已经使用它添加了一个答案。以上是关于如何在 WPF C# 中获取多文本框作为方法的输入参数的主要内容,如果未能解决你的问题,请参考以下文章