0

私はそれが機能するコードを持っていますが、それは私が望むものではありません。

実行時に多くの新しいテキストボックス/ラベルを作成するため、10 個の if を使用して、各「将来の」テキストボックスが textlength = 0 および != null であることを確認する必要がありました

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;
                        }
                    }
                }
            }
        }
4

2 に答える 2

1

このようなものがあなたが探しているものでしょうか?ラベルがさらにある場合は、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;
                            }
                        }                    
                    }
                }
            }
        }
于 2013-05-03T07:17:31.140 に答える
0

コントロールを作成するときに、コントロールをペア (ラベルとテキスト ボックス) でリストに追加できるため、多くの時間がかかる可能性があるコントロール コレクションを検索する必要がありません。

その後、リストを単純にループできます。

于 2013-05-03T07:24:58.453 に答える