vb.net – 将此重复语句转换为循环
发布时间:2020-12-17 07:27:41 所属栏目:百科 来源:网络整理
导读:本规范过于重复!我必须重新编写这个代码到二十个!你能帮助我把它转换成一个循环,它会从textbox1移动到2到3等等吗? If CheckBox1.Checked = True Then frmLunchBoxMenu.LineNumber = frmLunchBoxMenu.LineNumber + 1 frmLunchBoxMenu.txtOrder.AppendText(
本规范过于重复!我必须重新编写这个代码到二十个!你能帮助我把它转换成一个循环,它会从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 这是有效的,感谢帮助人员,问题是直接演员.解决了: 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 解决方法Dim strOutput As String = "" Dim intLineNumber As Integer = 0 For Each ctl As Control In Me.Controls If TypeOf ctl Is CheckBox Then Dim chk As CheckBox = DirectCast(ctl,CheckBox) If chk.Checked Then intLineNumber += 1 strOutput &= intLineNumber.ToString + ".) An order of " + ctl.Text & vbCrLf End If End If Next ctl txtOrder.Text = strOutput …但您也应该考虑使用CheckedListBox控件.这将允许您的菜单动态加载(从文本文件或数据库加载),您不需要管理多个复选框控件. 这是CheckedListBox版本…… Public Class frmLunchBoxMenu 'Add a CheckedListBox,a Button,and a TextBox named txtOrder to the form Private Sub Form1_Load(sender As Object,e As EventArgs) Handles MyBase.Load CheckedListBox1.Items.Clear() CheckedListBox1.Items.Add("Hamburger") CheckedListBox1.Items.Add("Pizza") CheckedListBox1.Items.Add("Cola") CheckedListBox1.Items.Add("Chips") CheckedListBox1.Items.Add("Hot dog") End Sub Private Sub Button1_Click(sender As Object,e As EventArgs) Handles Button1.Click Dim strOutput As String = "" Dim intLineNumber As Integer = 0 For i As Integer = 0 To CheckedListBox1.Items.Count - 1 If CheckedListBox1.GetItemChecked(i) Then intLineNumber += 1 strOutput &= intLineNumber.ToString + ".) An order of " + CheckedListBox1.Items(i).ToString & vbCrLf End If Next i txtOrder.Text = strOutput End Sub End Class (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |