将此重复语句转换为循环

Rex*_*MER 5 vb.net visual-studio-2010

本规范过于重复!我必须重新编写这个代码到二十个!你能帮助我把它转换成一个循环,它会从textbox1移动到2到3等等吗?

    If CheckBox1.Checked = True Then
        frmLunchBoxMenu.LineNumber = frmLunchBoxMenu.LineNumber + 1
        frmLunchBoxMenu.txtOrder.AppendText(frmLunchBoxMenu.LineNumber.ToString + ".) An order of " + CheckBox1.Text & Environment.NewLine)
    End If
    If CheckBox2.Checked = True Then
        frmLunchBoxMenu.LineNumber = frmLunchBoxMenu.LineNumber + 1
        frmLunchBoxMenu.txtOrder.AppendText(frmLunchBoxMenu.LineNumber.ToString + ".) An order of " + CheckBox2.Text & Environment.NewLine)
    End If        If CheckBox1.Checked = True Then
        frmLunchBoxMenu.LineNumber = frmLunchBoxMenu.LineNumber + 1
        frmLunchBoxMenu.txtOrder.AppendText(frmLunchBoxMenu.LineNumber.ToString + ".) An order of " + CheckBox1.Text & Environment.NewLine)
    End If
    If CheckBox2.Checked = True Then
        frmLunchBoxMenu.LineNumber = frmLunchBoxMenu.LineNumber + 1
        frmLunchBoxMenu.txtOrder.AppendText(frmLunchBoxMenu.LineNumber.ToString + ".) An order of " + CheckBox2.Text & Environment.NewLine)
    End If
    If CheckBox3.Checked = True Then
        frmLunchBoxMenu.LineNumber = frmLunchBoxMenu.LineNumber + 1
        frmLunchBoxMenu.txtOrder.AppendText(frmLunchBoxMenu.LineNumber.ToString + ".) An order of " + CheckBox3.Text & Environment.NewLine)
    End If
    If CheckBox4.Checked = True Then
        frmLunchBoxMenu.LineNumber = frmLunchBoxMenu.LineNumber + 1
        frmLunchBoxMenu.txtOrder.AppendText(frmLunchBoxMenu.LineNumber.ToString + ".) An order of " + CheckBox4.Text & Environment.NewLine)
    End If
    If CheckBox5.Checked = True Then
        frmLunchBoxMenu.LineNumber = frmLunchBoxMenu.LineNumber + 1
        frmLunchBoxMenu.txtOrder.AppendText(frmLunchBoxMenu.LineNumber.ToString + ".) An order of " + CheckBox5.Text & Environment.NewLine)
    End If
Run Code Online (Sandbox Code Playgroud)

这是有效的,感谢帮助人员,问题是直接演员.解决了:

Public Class frmBeverages
Dim Range As Integer = 0
Private Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click
    While Range < 14
        Range = Range + 1
        Dim chk As CheckBox =
        DirectCast(Me.Controls("Checkbox" & CStr(Range)), CheckBox)
        If chk.CheckState = CheckState.Checked Then
            frmLunchBoxMenu.LineNumber = frmLunchBoxMenu.LineNumber + 1
            frmLunchBoxMenu.txtOrder.AppendText(CStr(frmLunchBoxMenu.LineNumber) & ".) An order of " & chk.Text & Environment.NewLine)
        End If
    End While
    Close()
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

Ele*_*ios 0

这可能是一种方法:

    Dim Range As Integer() =
        Enumerable.Range(1, 20).ToArray

    For Each n As Integer In Range

        Dim chk As CheckBox =
            DirectCast(Me.Controls("Checkbox" & CStr(n)), CheckBox) 
        ' Specify above the right ControlCollection if needed.

        If chk.Checked Then

            With frmLunchBoxMenu
                .LineNumber += 1
                .txtOrder.AppendText(CStr(frmLunchBoxMenu.LineNumber) &
                                     ".) An order of " & chk.Text &
                                     Environment.NewLine)
            End With

        End If

    Next n
Run Code Online (Sandbox Code Playgroud)