0

2 つのパネル、データ グリッド ビュー、および「クリア」ボタンを含むタブ ページを用意します。パネルにはテキスト ボックスのみがあり、グリッドはバインドされていません。データ入力はユーザーによるものです。クリア ボタンはデフォルトで無効になっています。私の要件は、テキストボックスのいずれかが空でない場合、またはグリッドに複数の行がある場合にのみ有効にすることです。このコードは機能していません。助けてください。

public Form1()
 {
   InitializeComponent();
   foreach (Control c in InvoiceTab.Controls)
    {
      if (c is DataGridView)
       {
         DataGridView dgv = c as DataGridView;
         if (dgv.RowCount > 1)
          {
            EnableClearBtnBool = true;
            btnClear.Enabled = true;
            break;
          }
         else
          {
            EnableClearBtnBool = false;
            btnClear.Enabled = false;
            break;
          }
       }
    }
    foreach (Control c1 in panel1.Controls)
     {
       if (c1 is TextBox)
        {
          if (c1.Text != "")
            {
              EnableClearBtnBool = true;
              c1.TextChanged -= EnableClearBtn;
              c1.TextChanged += EnableClearBtn;
              break;
            }
          else
             EnableClearBtnBool = false;
        }                  
     }
     foreach (Control c2 in panel2.Controls)
      {
        if (c2 is TextBox)
         {
           if (c2.Text != "")
            {
              EnableClearBtnBool = true;
              c2.TextChanged -= EnableClearBtn;
              c2.TextChanged += EnableClearBtn;
              break;
            }
           else
            EnableClearBtnBool = false;
         }
      }      
 }
bool EnableClearBtnBool = false;
private void EnableClearBtn(object sender, EventArgs e)
    {
        if (EnableClearBtnBool == true)
            btnClear.Enabled = true;
        else
            btnClear.Enabled = false;
    }
4

1 に答える 1