0

VB クラスの簡単なプロジェクトに取り組んでいますが、問題が発生しました。私はこの言語に慣れていないので、自分が何をしているのかほとんどわかりません... 現在、非常に単純なプログラムを RSVP リストとしてセットアップしています。リストボックスに名前を挿入するためのテキストボックスと、21歳以上のチェックボックスを備えた男性/女性のラジオボタンと、この情報をリストボックスに送信するための送信ボタンを設定しました。私がやりたいのは、ラベルにカウンターを追加するループを何とか組み込んで、各名前が追加されると15になるまで上昇し、メッセージボックスを表示することです。これはループにはまったく使用できないかもしれませんが、割り当ての要件であるため、どこかに押し込もうとしています。

私のコード (はい、私はそれが貧弱であることを知っています)

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub

Private Sub SubmitBtn1_Click(sender As Object, e As EventArgs) Handles SubmitBtn1.Click
    Dim NamesInput As String
    NamesInput = NamesTxt1.Text
    If GenderRdBtn1.Checked = False And GenderRdBtn2.Checked = False Then
        MessageBox.Show("Please Select a Gender")

    ElseIf GenderRdBtn1.Checked = True Then
        MessageBox.Show("Congratulations! You Have RSVP'd as " & NamesInput)
    Else
        MessageBox.Show("Congratulations! You Have RSVP'd as " & NamesInput)
    End If
    If AgeChk1.Checked = True Then
        NamesLstBox1.Items.Add(NamesInput & " / Over 21")
    Else
        NamesLstBox1.Items.Add(NamesInput)
    End If

    If GenderRdBtn1.Checked = False And GenderRdBtn2.Checked = False Then
        NamesLstBox1.Items.RemoveAt(0)
    End If
End Sub

助けてくれてありがとう!

4

1 に答える 1

0

その通りです - ここでループは必要ありません...しかし、ループが「機能要件」である場合は、新しい名前が追加されるたびに NamesLstBox Items コレクションをループして、カウンターを繰り返し、設定することができますカウントに基づくラベルの値。

Dim Count as Integer
For Each i In NamesLstBox1.Items
    Count += 1
    If Count = 15 Then
        'display message box
    End If
Next
Label.Text = Count.ToString()

繰り返しますが、これは非常に非効率的な操作です。毎回カウントを保存して単純にインクリメントするだけでは意味がありません。私はおそらくループのより良い使用法を他の場所で探すでしょう

于 2013-10-30T02:51:13.373 に答える