Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Windowsform-如何使此代码更好(运行时创建的文本框和标签)将太多的ifs更改为重复结构_C#_If Statement_For Loop_Textbox_Runtime - Fatal编程技术网

C#Windowsform-如何使此代码更好(运行时创建的文本框和标签)将太多的ifs更改为重复结构

C#Windowsform-如何使此代码更好(运行时创建的文本框和标签)将太多的ifs更改为重复结构,c#,if-statement,for-loop,textbox,runtime,C#,If Statement,For Loop,Textbox,Runtime,我有代码,它的工作,但它不是我想要的 在运行时,我创建了许多新的文本框/标签,因此我必须使用10个if来检查每个“未来”文本框的textlength=0和!=空的 我想使用重复结构,比如for或while,不知道是否可能 例如,如果我创建更多的文本框/标签,就不可能有真正大的代码 请参阅我的代码: private void cadeiaapagarcampos(TextBox _text, EventArgs e) { if (_te

我有代码,它的工作,但它不是我想要的

在运行时,我创建了许多新的文本框/标签,因此我必须使用10个if来检查每个“未来”文本框的textlength=0和!=空的

我想使用重复结构,比如for或while,不知道是否可能

例如,如果我创建更多的文本框/标签,就不可能有真正大的代码

请参阅我的代码:

private void cadeiaapagarcampos(TextBox _text, EventArgs e)
        {           
            if (_text.Text == "")
            {
                Label lblAcessorio2 = (Label)gpbCategoria.Controls.Find("lblAcessorio2", false).FirstOrDefault();
                TextBox txtAcessorio2 = (TextBox)gpbCategoria.Controls.Find("txtAcessorio2", false).FirstOrDefault();
                Label lblAcessorio3 = (Label)gpbCategoria.Controls.Find("lblAcessorio3", false).FirstOrDefault();
                TextBox txtAcessorio3 = (TextBox)gpbCategoria.Controls.Find("txtAcessorio3", false).FirstOrDefault();
                Label lblAcessorio4 = (Label)gpbCategoria.Controls.Find("lblAcessorio4", false).FirstOrDefault();
                TextBox txtAcessorio4 = (TextBox)gpbCategoria.Controls.Find("txtAcessorio4", false).FirstOrDefault();
                Label lblAcessorio5 = (Label)gpbCategoria.Controls.Find("lblAcessorio5", false).FirstOrDefault();
                TextBox txtAcessorio5 = (TextBox)gpbCategoria.Controls.Find("txtAcessorio5", false).FirstOrDefault();
                Label lblAcessorio6 = (Label)gpbCategoria.Controls.Find("lblAcessorio6", false).FirstOrDefault();
                TextBox txtAcessorio6 = (TextBox)gpbCategoria.Controls.Find("txtAcessorio6", false).FirstOrDefault();
                Label lblAcessorio7 = (Label)gpbCategoria.Controls.Find("lblAcessorio7", false).FirstOrDefault();
                TextBox txtAcessorio7 = (TextBox)gpbCategoria.Controls.Find("txtAcessorio7", false).FirstOrDefault();
                Label lblAcessorio8 = (Label)gpbCategoria.Controls.Find("lblAcessorio8", false).FirstOrDefault();
                TextBox txtAcessorio8 = (TextBox)gpbCategoria.Controls.Find("txtAcessorio8", false).FirstOrDefault();
                Label lblAcessorio9 = (Label)gpbCategoria.Controls.Find("lblAcessorio9", false).FirstOrDefault();
                TextBox txtAcessorio9 = (TextBox)gpbCategoria.Controls.Find("txtAcessorio9", false).FirstOrDefault();
                Label lblAcessorio10 = (Label)gpbCategoria.Controls.Find("lblAcessorio10", false).FirstOrDefault();
                TextBox txtAcessorio10 = (TextBox)gpbCategoria.Controls.Find("txtAcessorio10", false).FirstOrDefault();

                if (txtAcessorio2 != null && txtAcessorio2.TextLength == 0)
                {
                    gpbCategoria.Controls.Remove(txtAcessorio2);
                    gpbCategoria.Controls.Remove(lblAcessorio2);
                    btnSalvar.Focus();
                    if (test != 1)
                    {
                        n--;
                        t++;
                        if (n >= 1 && n <= 10)
                        {
                            testeapagar();
                            test = 1;
                        }
                    }                    
                }
                if (txtAcessorio3 != null && txtAcessorio3.TextLength == 0)
                {

                    gpbCategoria.Controls.Remove(txtAcessorio3);
                    gpbCategoria.Controls.Remove(lblAcessorio3);
                    btnSalvar.Focus();
                    if (test != 1)
                    {
                        n--;
                        t++;
                        if (n >= 1 && n <= 10)
                        {
                            testeapagar();
                            test = 1;
                        }
                    }
                }
                if (txtAcessorio4 != null && txtAcessorio4.TextLength == 0)
                {
                    gpbCategoria.Controls.Remove(txtAcessorio4);
                    gpbCategoria.Controls.Remove(lblAcessorio4);
                    btnSalvar.Focus();
                    if (test != 1)
                    {
                        n--;
                        t++;
                        if (n >= 1 && n <= 10)
                        {
                            testeapagar();
                            test = 1;
                        }
                    }
                }
                if (txtAcessorio5 != null && txtAcessorio5.TextLength == 0)
                {
                    gpbCategoria.Controls.Remove(txtAcessorio5);
                    gpbCategoria.Controls.Remove(lblAcessorio5);
                    btnSalvar.Focus();
                    if (test != 1)
                    {
                        n--;
                        t++;
                        if (n >= 1 && n <= 10)
                        {
                            testeapagar();
                            test = 1;
                        }
                    }
                }
                if (txtAcessorio6 != null && txtAcessorio6.TextLength == 0)
                {
                    gpbCategoria.Controls.Remove(txtAcessorio6);
                    gpbCategoria.Controls.Remove(lblAcessorio6);
                    btnSalvar.Focus(); 
                    if (test != 1)
                    {
                        n--;
                        t++;
                        if (n >= 1 && n <= 10)
                        {
                            testeapagar();
                            test = 1;
                        }
                    }
                }
                if (txtAcessorio7 != null && txtAcessorio7.TextLength == 0)
                {
                    gpbCategoria.Controls.Remove(txtAcessorio7);
                    gpbCategoria.Controls.Remove(lblAcessorio7);
                    btnSalvar.Focus(); 
                    if (test != 1)
                    {
                        n--;
                        t++;
                        if (n >= 1 && n <= 10)
                        {
                            testeapagar();
                            test = 1;
                        }
                    }
                }
                if (txtAcessorio8 != null && txtAcessorio8.TextLength == 0)
                {
                    gpbCategoria.Controls.Remove(txtAcessorio8);
                    gpbCategoria.Controls.Remove(lblAcessorio8);
                    btnSalvar.Focus();
                    if (test != 1)
                    {
                        n--;
                        t++;
                        if (n >= 1 && n <= 10)
                        {
                            testeapagar();
                            test = 1;
                        }
                    }
                }
                if (txtAcessorio9 != null && txtAcessorio9.TextLength == 0)
                {
                    gpbCategoria.Controls.Remove(txtAcessorio9);
                    gpbCategoria.Controls.Remove(lblAcessorio9);
                    btnSalvar.Focus();
                    if (test != 1)
                    {
                        n--;
                        t++;
                        if (n >= 1 && n <= 10)
                        {
                            testeapagar();
                            test = 1;
                        }
                    }
                }
            }
        }
private void cadiaapagarcampos(文本框_text,事件参数e)
{           
如果(_text.text==“”)
{
Label lblAcessorio2=(Label)gpbCategoria.Controls.Find(“lblAcessorio2”,false).FirstOrDefault();
TextBox txtAcessorio2=(TextBox)gpbCategoria.Controls.Find(“txtAcessorio2”,false).FirstOrDefault();
Label lblAcessorio3=(Label)gpbCategoria.Controls.Find(“lblAcessorio3”,false).FirstOrDefault();
TextBox txtAcessorio3=(TextBox)gpbCategoria.Controls.Find(“txtAcessorio3”,false).FirstOrDefault();
Label lblAcessorio4=(Label)gpbCategoria.Controls.Find(“lblAcessorio4”,false).FirstOrDefault();
TextBox txtAcessorio4=(TextBox)gpbCategoria.Controls.Find(“txtAcessorio4”,false).FirstOrDefault();
Label lblAcessorio5=(Label)gpbCategoria.Controls.Find(“lblAcessorio5”,false).FirstOrDefault();
TextBox txtAcessorio5=(TextBox)gpbCategoria.Controls.Find(“txtAcessorio5”,false).FirstOrDefault();
Label lblAcessorio6=(Label)gpbCategoria.Controls.Find(“lblAcessorio6”,false).FirstOrDefault();
TextBox txtAcessorio6=(TextBox)gpbCategoria.Controls.Find(“txtAcessorio6”,false).FirstOrDefault();
Label lblAcessorio7=(Label)gpbCategoria.Controls.Find(“lblAcessorio7”,false).FirstOrDefault();
TextBox txtAcessorio7=(TextBox)gpbCategoria.Controls.Find(“txtAcessorio7”,false).FirstOrDefault();
Label lblAcessorio8=(Label)gpbCategoria.Controls.Find(“lblAcessorio8”,false).FirstOrDefault();
TextBox txtAcessorio8=(TextBox)gpbCategoria.Controls.Find(“txtAcessorio8”,false).FirstOrDefault();
Label lblAcessorio9=(Label)gpbCategoria.Controls.Find(“lblAcessorio9”,false).FirstOrDefault();
TextBox txtAcessorio9=(TextBox)gpbCategoria.Controls.Find(“txtAcessorio9”,false).FirstOrDefault();
Label lblAcessorio10=(Label)gpbCategoria.Controls.Find(“lblAcessorio10”,false).FirstOrDefault();
TextBox txtAcessorio10=(TextBox)gpbCategoria.Controls.Find(“txtAcessorio10”,false).FirstOrDefault();
if(txtAcessorio2!=null&&txtAcessorio2.TextLength==0)
{
gpbCategoria.Controls.Remove(txtAcessorio2);
gpbCategoria.Controls.Remove(lblAcessorio2);
btnSalvar.Focus();
如果(测试!=1)
{
n--;
t++;

如果(n>=1&&n=1&&n=1&&n=1&&n=1&&n=1&&n=1&&n=1&&n=1&&n您想要的是这样的东西吗?如果您有更多的标签,只需更新iAcessorioContar,只要您以增量方式命名标签,它就会自动检查它们

private void cadeiaapagarcampos(TextBox _text, EventArgs e)
        {
            if (_text.Text == "")
            {
                int iAcessorioContar = 10;
                for (int iContador = 2; iContador <= iAcessorioContar; iContador++) {
                    Label lblAcessorio = (Label)gpbCategoria.Controls.Find("lblAcessorio"+iContador, false).FirstOrDefault();
                    TextBox txtAcessorio = (TextBox)gpbCategoria.Controls.Find("txtAcessorio"+iContador, false).FirstOrDefault();

                    if (txtAcessorio != null && txtAcessorio.TextLength == 0)
                    {
                        gpbCategoria.Controls.Remove(txtAcessorio);
                        gpbCategoria.Controls.Remove(lblAcessorio);
                        btnSalvar.Focus();
                        if (test != 1) {
                            n--;
                            t++;
                            if (n >= 1 && n <= 10)
                            {
                                testeapagar();
                                test = 1;
                            }
                        }                    
                    }
                }
            }
        }
private void cadiaapagarcampos(文本框_text,事件参数e)
{
如果(_text.text==“”)
{
int iAcessorioContar=10;

对于(int iContador=2;iContador=1&&n,您可以在创建控件时成对地将控件(标签和文本框)添加到列表中,这样您就不必搜索控件集合,这可能会花费大量时间


然后,您可以简单地循环列表。

真的很感谢您的出色表现+1000它真的会让事情变得更加简单和更好,会在我掌握的太多代码中使用这种语法。您来自巴西吗?您使用变量:iAcessorioContar(葡萄牙语),caso seja,muito obrigado!De nada!我很高兴这有帮助,像这样构建代码会让事情变得更加动态。你可以通过每次创建控件时将iAcessorioContar增加1或在移除控件时将iAcessorioContar减少来改进它,这样你就不必每次都自己更新它。我不是巴西人,但我知道一些事情ds(或者至少我认为我是这样),我认为我应该遵守所使用的语言。再次感谢,我做了它,我的代码中已经存在的n个变量是知道是否有1到10个文本框的变量,所以我将10替换为n,它工作得很好,这样就避免了不必要的循环。