Vb.net vb中的组合框

Vb.net vb中的组合框,vb.net,winforms,Vb.net,Winforms,我使用了一个组合框,里面有20个数字(从1到20),每个数字代表一个日期和时间文本框的数字,在另一个弹出表单中可见 例如,如果选择了4,则4个日期和时间框可见 问题是: 最多可以看到9个日期和时间框,但从10到20,我只能看到一个日期和时间框。我无法解决这个问题,任何帮助都将不胜感激 这是我的密码: Private Sub payno__SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handle

我使用了一个组合框,里面有20个数字(从1到20),每个数字代表一个日期和时间文本框的数字,在另一个弹出表单中可见

例如,如果选择了4,则4个日期和时间框可见

问题是:

最多可以看到9个日期和时间框,但从10到20,我只能看到一个日期和时间框。我无法解决这个问题,任何帮助都将不胜感激

这是我的密码:

Private Sub payno__SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles payno.SelectedIndexChanged

    Dim selectedIndex As Integer
    selectedIndex = payno.SelectedItem

    Dim selectedItem As Object

    selectedItem = payno.SelectedItem

    MessageBox.Show("Selected Item Text: " & selectedItem.ToString() & Microsoft.VisualBasic.Constants.vbCrLf &
                    "Index: " & selectedIndex.ToString())




    If payno.Text.Trim.Contains("1") = True Then
        paytime.DateTimePicker1.Visible = True
        paytime.DateTimePicker2.Visible = False
        paytime.DateTimePicker3.Visible = False
        paytime.DateTimePicker4.Visible = False
        paytime.DateTimePicker5.Visible = False
        paytime.DateTimePicker6.Visible = False
        paytime.DateTimePicker7.Visible = False
        paytime.DateTimePicker8.Visible = False
        paytime.DateTimePicker9.Visible = False
        paytime.DateTimePicker10.Visible = False
        paytime.DateTimePicker11.Visible = False
        paytime.DateTimePicker12.Visible = False
        paytime.DateTimePicker13.Visible = False
        paytime.DateTimePicker14.Visible = False
        paytime.DateTimePicker15.Visible = False
        paytime.DateTimePicker16.Visible = False
        paytime.DateTimePicker17.Visible = False
        paytime.DateTimePicker18.Visible = False
        paytime.DateTimePicker19.Visible = False
        paytime.DateTimePicker20.Visible = False




        ElseIf payno.Text.Trim.Contains("2") = True Then
        paytime.DateTimePicker1.Visible = True
        paytime.DateTimePicker2.Visible = True
        paytime.DateTimePicker3.Visible = False
        paytime.DateTimePicker4.Visible = False
        paytime.DateTimePicker5.Visible = False
        paytime.DateTimePicker6.Visible = False
        paytime.DateTimePicker7.Visible = False
        paytime.DateTimePicker8.Visible = False
        paytime.DateTimePicker9.Visible = False
        paytime.DateTimePicker10.Visible = False
        paytime.DateTimePicker11.Visible = False
        paytime.DateTimePicker12.Visible = False
        paytime.DateTimePicker13.Visible = False
        paytime.DateTimePicker14.Visible = False
        paytime.DateTimePicker15.Visible = False
        paytime.DateTimePicker16.Visible = False
        paytime.DateTimePicker17.Visible = False
        paytime.DateTimePicker18.Visible = False
        paytime.DateTimePicker19.Visible = False
        paytime.DateTimePicker20.Visible = False

        and so on until 20 ...

未经测试,但大致如下:

Dim x as Integer
While (x <= Integer.Parse(payno.Text.Trim))
   Select (x)
      Case 1
         paytime.DateTimePicker1.Visible = True
      Case 2
         paytime.DateTimePicker2.Visible = True
.....



   End Select
End While
Dim x作为整数

尽管(x无论您编写的逻辑是什么,它都是正确的,并且必须工作。但这不是最佳的编码实践。但是如果您想要修改相同的代码,请使用以下条件

如果payno.Text.trim=“1”,则

Elseif payno.Text.trim=“2”则

如果payno.Text.trim=“10”,则

Elseif payno.Text.trim=“11”则

1.但将所有日期保存在一个面板中 2.使面板对接到顶部 3.将面板上的scroll设置为true

如果弹出窗体的高度小于日期控件的顶部,也可能不显示


希望它有帮助

因为10包含1和0,否则if将永远无法达到10。非常感谢,但是你建议如何解决这个问题如果选择了4(如你的示例),然后只需在4个框上循环图灵。设置循环1号选择,执行一个select case语句,其中循环整数值当前值打开一个日期选择器。。。