简体   繁体   中英

Combo Box in vb

I am using a combo box with 20 numbers inside (from 1 to 20) each to represent a number of a date and time text box to be visible in another pop out form.

For example if 4 is selected, then 4 date and time boxes are visible.

The problem:

Up to 9 date and time boxes are visible just fine, but from 10 to 20 I can see only one date and time box. I couldn't solve the issue and any help will be appreciated.

Here is my code:

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 ...

Whatever the logic you have written it is correct and it must work. But it's not best coding practice. But if you want to modify the same code. Use the condition like

If payno.Text.trim="1" then

Elseif payno.Text.trim="2" then

.......

If payno.Text.trim="10" then

Elseif payno.Text.trim ="11" then

1.But keep all the date in one panel 2. Make the panel dock to top 3. Set scroll to true to the panel

If your pop-up form's height is lesserthan the date control's top also it may not be displayed.

Hope it helps

Untested but something like this:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM