Така че имам и формуляр с някои плъзгачикато съответни отметки, които забраняват или активират всеки плъзгач. Когато деактивирам плъзгача, искам да променя стойността му на 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 за отговор № 1Опитах се да направя обикновена форма тук, в опит да възпроизведа случая ви. Но не е същото и контролите работят добре.
Също така имайте предвид, че Min и Max не са наистина това, което смятате за 0 и 100. Това е диапазонът на стойностите. Стойността е друг имот. Мога да определя Мин като 150 и Макс като 300. Стойност 150 сега представляват нулева точка (0%) на плъзгача и 300 представляват така наречените 100% в този случай. Ако сте задали Мин да бъде 150 и след това се опита да зададете стойността на 0, това ще доведе до грешка. (Грешка при изпълнение 380, не може да зададе свойството Value. Невалидна стойност на имота.)
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
Отбележете и преместете слайдовете до 250 (някои стойности):
Деактивирайте и преместете слайдовете до 150 (нула):