如何在 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# 中获取多文本框作为方法的输入参数的主要内容,如果未能解决你的问题,请参考以下文章

如何从输入中获取多选文件到c#对象

如何在 WPF 中的删除操作之前启用文本框并等待输入条件

C#中在文本框中输入的字符串怎么让它隐藏

C#中如何检查文本框的输入信息是不是为数字?

C#中怎样从一个form的文本框获取另一个form中Comobox控件的值

文本框和标签数组如何在 C# 中的提交方法中获取值