私はvb.net
ウェブアプリケーションを複数行のコントロールで使用しています。各行にはテキストボックスと2つのボタンがあり、入力されたテキストを保存するボタンと既存のテキストを編集するボタンがあります(テキストが内部にある場合、テキストボックスは無効になります)。条件付きでコントロールを有効にする
編集をクリックすると、すべてのコントロールが無効になり、編集するテキストの関連する保存ボタンとテキストボックスが有効になります。私は無効になったこれらのコントロールを再度有効にしようとしていると私は、保存に成功した後、このようないくつかのコードを使用しています:編集中の
If String.IsNullOrEmpty(txtbox2.Text) = True Then
txtbox2.Enabled = True
btnSave2.Enabled = True
Else
btnEdit2.Enabled = True
End If
'enabling textbox and save button if textbox is empty
'or enabling edit button if text exists
If String.IsNullOrEmpty(txtbox3.Text) = True Then
txtbox3.Enabled = True
btnSave3.Enabled = True
Else
btnEdit3.Enabled = True
End If
これらの少しのブロックが1以外の行ごとに繰り返されている場合(1サブあたり合計5回)。私は同じことを達成するために各ループを使用しようとしましたが、ループする方法があるかどうか、テキストボックスにテキストがあるかどうかを判断し、そうであれば、その行の編集ボタンを有効にしますテキストボックスと同じ行の保存ボタンを再度有効にします。
私は簡単のようなもので、必要に応じて有効または無効にするには、すべてのテキストボックスを取得することができます。
Dim ReactivateText() = {txtbox2, txtbox3, txtbox4, txtbox5, txtbox6}
For Each thing In ReactivateText
If TypeOf thing Is TextBox Then
Dim othertext As TextBox = thing
If String.IsNullOrEmpty(othertext.Text) = True Then
othertext.Enabled = True
End If
End If
Next
しかし、たとえボタンコントロールを持つ以上の変数にボタンを追加することにより、別の配列変数で、私はよボタンを適切に有効または無効にするのに問題が残っています。
私はまだ比較的新しいvb.net
です。誰かがこれを達成するためのよりエレガントでプログラム的な方法についてアドバイスを持っているのであれば、私は興味がありますか?上のシンプルな元のコードは実際には意図した通りに動作しますが、私が知る限り、単なる十分に残しておくべきでしょう。しかし、この1ビットのコードは、私のアプリケーションの残りの部分に比べて過度に単純化されていると私に訴えており、これを実現するためのより良い方法があると想像しなければなりません。
ダングが良いです。完璧に働いた、ありがとう。私はそのような配列インデックスを参照する方法がなければならないことを知っていましたが、関連する資料を検索するとき – GreggJ