0

vb.net と wpf のテキスト ボックスを認証して、内容をデータベースにフィードする前に null 値が含まれていないことを確認したいのですが、for...each ステートメントを使用することを考えていますが、wpf では機能しません。私のコード。

for Each txt as Control in window.controls
  if typeof is Textbox Then
    if txt.text = "" Then
      MsgBox("Complete the blank Properties")
      exit sub
    end if
  end if
next

このコードは機能せず、次のエラーが表示されます:「window は型であり、式として使用できません」

これどうやってするの?

4

4 に答える 4

0

コードがコントロールと同じ形式(.netウィンドウ)の場合は、のMe.Controls代わりにを使用しwindow.Controlsます。windowそうでない場合は、実際に変数であることを確認してください。

于 2013-03-18T06:47:20.590 に答える
0

Hey Guys、私は最終的に問題を解決しました。あなたの提案に感謝します。

これは、グリッド内のすべてのテキスト ボックスをループして空でないことを確認するために呼び出す関数にすぎません。関数を呼び出して、グリッドの名前をパラメーターとして渡します。

乾杯!

public function AuthenticateTextBoxes(Byref G as Grid)
For i as int32 = 0 to (G.Children.count - 1)
  if G.Children.Item(i).GetType = GetType(TextBox) Then
     Dim txt as Textbox = CType(G.Children.Item(i),TextBox)
       if string.IsnullOrWhitespace(txt.text) Then
         MsgBox("Fill In the required fields")
       End if
  End if
Next
于 2013-03-25T12:55:48.057 に答える
0
 if txt.text = "" Then

への変更

 if txt.text is nothing Then

それ以外の場合は、コードでそれが必要ない場合は、エラー プロバイダー ツールを試すことができます。次に、このコードを書きます

If (String.IsNullOrEmpty(textbox1.Text)) Or (String.IsNullOrEmpty(textbox2.Text)) Then
                ErrorProvider1.SetError(textbox1, "This is a require field")
                ErrorProvider1.SetError(textbox2, "This is a require field, fill in with 4 digits")
于 2013-03-18T06:38:36.863 に答える
0

あなたのウィンドウはwindowという名前ではありません。foreach ループに汎用ウィンドウの代わりにウィンドウの変数名を入れます。多分これはあなたのウィンドウクラスのメソッドですか?それは残念であり、最良のデザインではありませんが、名前を省略して単に書くこともできます.

for each txt as Control in yourwindowsvariablename.Controls

また

for each txt as Control in Controls
于 2013-03-18T06:45:41.750 に答える