2016-04-03 5 views
-2

Я использую комбинированный ящик с 20 номерами внутри (от 1 до 20) для представления числа текстового поля даты и времени, которое должно быть видимым в другой форме всплывающего окна.Combo Box in vb

Например, если выбрано 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 ... 
+0

С 10 содержит 1 и 0, то еще, если не получат до 10. –

+0

спасибо, но как у предложить, чтобы исправить это – Moe

+0

Если 4 выбрано (в качестве примера) затем просто пройдите через Тьюринга на 4 ящика. Задайте выбранный цикл 1-й номер, сделайте оператор case case, где текущее значение целочисленного цикла включит один выбор даты ... –

ответ

1

Вне зависимости от логики вы написали это правильно, и он должен работать. Но это не лучшая практика кодирования. Но если вы хотите изменить один и тот же код. Используйте условие как

Если payno.Text.trim = "1", то

Elseif payno.Text.trim = "2", то

.......

If payno.Text.trim = "10", то

Elseif payno.Text.trim = "11", а затем

1.But сохранить все даты в одной панели 2. Убедитесь док панели к началу 3. Установите для прокрутки значение true на панель

Если высота всплывающей формы меньше, чем верхняя часть управления датой, она также может не отображаться.

Надеется, что это помогает

+0

спасибо большое, попробуйте сейчас – Moe

+0

Это действительно сработало спасибо большое – Moe

0

непроверенная, но что-то вроде этого:

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