2015-06-30 2 views
1

Итак, у меня есть форма с некоторыми ползунками на ней, а также некоторые соответствующие флажки, которые отключают или активируют каждый слайдер. Когда я отключу слайдер, я хочу изменить его значение на 0, но он отказывается сотрудничать и не будет изменять значение. Разочарочно, до тех пор, пока я задаю значение чему-то, кроме 0, он изменится.Невозможно изменить значение ползунка на 0

Я отлажена его, наблюдал изменение Value свойств ползунка в для значений больше, чем 0, проверяется, что элементы управления в sliders массиве соответствует элементам управления, я их задумал, проверить, что Min свойства было 0 и даже изменил его к абсурдно низкому числу при случайности это не было включительно, поэтому я не могу себе представить, почему так должно было бы вести себя так.

Это на самом деле не так уж и важно, поскольку значение слайдера не учитывается, когда оно отключено, но это изгоняет меня, поэтому я буду благодарен за понимание.

Private Sub UpdateSliderComponents(i As Integer) 
    Dim enable As Boolean 
    enable = Not daysOff(i).Value 

    If Not enable Then 
     sliders(i).Value = 0 
    End If 
    labels(i).Enabled = enable 
    sliders(i).Enabled = enable 
End Sub 

ответ

0

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

Также обратите внимание, что Min и Max на самом деле не то, что вы думаете как 0 и 100. Это диапазон значений. Значение - другое свойство. Я могу установить Min как 150 и Max как 300. Значение 150 теперь представляет нулевую точку (0 процентов) ползунка и 300 представляют собой так называемые 100 процентов в этом случае. Если вы установили Min равным 150, а затем попытались установить значение 0, это приведет к ошибке. (. Ошибка выполнения 380, не может установить свойство Value Invalid значения свойства.)

enter image description here

Option Explicit 

Public Sub Respond(ByRef i As Integer) 
Dim enable As Boolean 

Select Case i 
    Case 0 
     enable = False 
    Case 1 
     enable = True 
End Select 

If Not enable Then 
    ScrollBar1.Value = 150 '--represents zero % 
    ScrollBar1.BackColor = &H8000000F 
Else 
    ScrollBar1.Value = 250 '--represent some value in the range 
    ScrollBar1.BackColor = &H80FF80 
End If 

Debug.Print ScrollBar1.Value 
ScrollBar1.Enabled = enable 

End Sub 

Tick и горки до 250 (некоторого значения):

enter image description here

Запрет и слайды до 150 (ноль):

enter image description here

Смежные вопросы