2013-07-04 4 views
1

그럼 난 노력하고있어 뭔가 그런 VB.NET에서 마우스 이동/스크롤 업 & 다운에 큰 변경 :트랙 바 사용자 정의 작은 &

Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll 
    Dim scv As Int32 = TrackBar1.Value 
    Dim uni As [String] = "ms" 

    Select Case scv 
     Case Is > 1000 
      scv = scv \ 1000 
      uni = "s" 
      sender.SmallChange = 1000 
     Case Is > 100 
      sender.SmallChange = 50 
     Case Is > 50 
      sender.SmallChange = 50 
     Case Is > 25 
      sender.SmallChange = 25 
     Case Is > 10 
      sender.SmallChange = 15 
    End Select 

    Label4.Text = (scv & uni).ToString 
End Sub 

그러나 그 설 포닐 화살표 키를 <와 함께 작동 >, 마우스 이동 또는 마우스 스크롤 휠로 시도해도 작동하지 않습니다. 그리고 ... 왼쪽에서 오른쪽으로 가면 작동합니다 ...

내가해야 할 일? :(

+0

내가 이해 생각합니다. 때 마우스를 사용 화살표 키를 사용할 때처럼 SmallChange 값을 기반으로 이산 청크로 "점프"하고 싶습니까? 이렇게하려면 새 값이 실시간으로 변경되어야하는 값을 계산해야합니다. –

+0

예, 당신은 모두를 이해했습니다 ... 코드를 게시하면 나는 투표 할 것입니다;) – Seazoux

답변

2

이 밖으로 뭔가를 시도 ...

Private Sub TrackBar1_Scroll(sender As Object, e As EventArgs) Handles TrackBar1.Scroll 
    Dim bar As TrackBar = DirectCast(sender, TrackBar) 

    Select Case bar.Value 
     Case Is >= 1000 
      bar.SmallChange = 1000 
     Case Is > 100 
      bar.SmallChange = 50 
     Case Is > 50 
      bar.SmallChange = 50 
     Case Is > 25 
      bar.SmallChange = 25 
     Case Is > 10 
      bar.SmallChange = 15 
    End Select 

    Dim discrete As Integer = TrackBar1.Value \ TrackBar1.SmallChange 
    Dim Value As Integer = discrete * bar.SmallChange 
    bar.Value = Math.Min(Math.Max(bar.Minimum, Value), bar.Maximum) 

    Label4.Text = IIf(bar.Value >= 1000, bar.Value \ 1000, bar.Value) & IIf(bar.Value >= 1000, "s", "ms") 
End Sub 
+0

당신은 코드가 거의 좋다, 단지 왜 마커가 9 초 안에 잡히게되는지 모르겠다. ... ( – Seazoux

+0

확실하지 않다 ... 나는 설치 광산을 제로 (0)에서 10,000으로 갈 것이며, 괜찮아 보였다. 당신의 매개 변수는 무엇입니까? 스크린 샷을 게시하고 더 자세한 내용을 설명 할 수 있습니까? –

+0

http://gyazo.com/057ced626df0c928f9f76e81cb39209c http://gyazo.com/8118a73436f60c55eecf6cb94e02144f 이 마커가 잡힐 곳이다 : http://gyazo.com/142df16309c0ff61f3ca5a7af1cc994e "Velocidad"를 영어로는 속도와 "Velocidad personalizada"는 "맞춤 속도"입니다. ;) – Seazoux

1

는 트랙 바는 절대 사용하지 마십시오 ..하지만 난 그게이를 좋아한다고 생각합니다 ..

Dim Trb as TrackBar = CType(sender,TrackBar) 

Trb.SmallChange = 1000 

'and so on .. 
관련 문제