none
請教一下 VB2005 的 ScrollBar RRS feed

  • 問題

  • 小弟用的開發環境是 vs2005 sp1 / vs2008,
    建立 vb 的 windows application 專案,
    form 上放一個 hscrollbar,
    程式碼如下:

    Private Sub HScrollBar1_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles HScrollBar1.Scroll
    Me.HScrollBar1.Enabled = False
    Me.HScrollBar1.Enabled = True
    End Sub


    之後 double click scrollbar 的左或右那兩按鍵, 這個 scrollbar 變得很神奇....
    (vscrollbar 也是)
    double click 任何一部份, 會改變容器的 windowstate,
    在其上拖曳, 會改變容器的 size,
    按下右鍵, scrollbar 的功能仍舊可以使用....

    請問這算是 bug 嗎?
    2008年12月25日 上午 06:16

解答

  • HI,

     

    應該說在Scroll事件處理程序中正常是要執行和SCROLL有關的動作, 不會將ScrollBar禁用再啟用, 或許是您的特殊動作發覺了ScrollBar這個控制項沒有預料到的問題

     

    tihs

    2008年12月26日 上午 03:15

所有回覆

  • HI,

     

    應該說在Scroll事件處理程序中正常是要執行和SCROLL有關的動作, 不會將ScrollBar禁用再啟用, 或許是您的特殊動作發覺了ScrollBar這個控制項沒有預料到的問題

     

    tihs

    2008年12月26日 上午 03:15
  • 因為之前我的程式架構搞得太複雜....
    multi-thread 用 invoke , 然後要中斷 thread 用 manualresetevent 去等 thread 結束,
    會 dead lock , 所以用了 doevents, 結果在連進兩次 scroll 事件就容易出現問題,
    想說把 enabled 設成 false, 處理好一次 scroll 事件後再設成 true,
    後來我又發現, 只要從 doevents 進來 scroll 事件, 我再怎麼防止都沒有用,
    所以後來把架構稍微調整了一下, 現在已經不需要了,

    順便請問一下, 這算是 visual studio 的 bug 嗎?
    2008年12月27日 上午 09:05
  • HI,

     

    Microsoft的產品的Bug要由Microsoft本身去定義它是否為Bug, 我區區一個小咖, 不敢妄下結論, 您可以提報給Visual Studio的團隊, 由他們來處理會較有公信力

     

    tihs

    2008年12月28日 上午 03:01