none
[VB2010] 關於 tabpage - mouse滾輪 - focuse RRS feed

  • 問題

  • HI~

    各位~ 我遇到一個問題沒辦法解決,希望各位能幫忙。

    在我寫mouse滾輪時,滾動到最後,由於最尾的tabpage剛好有trackbar(滾動軸),結果到最後頁,focuse就在trackbar上,滾不回去了,

    請問要怎樣才能只在tabpage上來回滾動,而不會focuse在trackbar上?

    感謝幫忙。

        Private Sub main_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
    
            If e.Delta > 0 And TabControl1.SelectedIndex > 0 Then
                TabControl1.SelectedIndex -= 1
            ElseIf e.Delta < 0 And TabControl1.SelectedIndex < 7 Then
                TabControl1.SelectedIndex += 1
            End If
        End Sub

    sad

    2013年1月22日 上午 08:05

解答

  • Hi,

    不得已的方式: 以 TrackBar.Enabled 來控制,

    例如:

        Private Sub main_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
            TrackBar1.Enabled = False
    
            If e.Delta > 0 And TabControl1.SelectedIndex > 0 Then
                TabControl1.SelectedIndex -= 1
            ElseIf e.Delta < 0 And TabControl1.SelectedIndex < 7 Then
                TabControl1.SelectedIndex += 1
            End If
    
            TrackBar1.Enabled = True
    
        End Sub

    僅供參考.

    Ader

    2013年1月24日 上午 04:43

所有回覆

  • 可否透過偵錯模式,看一下你的SelectIndex 加/減 到多少的時候會跳到你所謂的trackbar上,

    知道的話,就可以用if else去檢查,然後看是否要多加1或多減1之類。

    此外,應該是FOCUS吧!??

    因為不知道你整個Layout怎麼做,所以我並沒有實際測試,或許可以試試看。

    2013年1月23日 上午 06:55
  • .Net 的介面沒特別修改都是 Windows 預設動作。

    滾輪的部分依照 driver 預設值會略有差異,比如說會有 Focus 跟 Over 的視窗差異。


    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    2013年1月23日 下午 03:08
  • Hi,

    不得已的方式: 以 TrackBar.Enabled 來控制,

    例如:

        Private Sub main_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
            TrackBar1.Enabled = False
    
            If e.Delta > 0 And TabControl1.SelectedIndex > 0 Then
                TabControl1.SelectedIndex -= 1
            ElseIf e.Delta < 0 And TabControl1.SelectedIndex < 7 Then
                TabControl1.SelectedIndex += 1
            End If
    
            TrackBar1.Enabled = True
    
        End Sub

    僅供參考.

    Ader

    2013年1月24日 上午 04:43