2012-01-06 184 views
0

我創建了一個控件,並且遇到一個奇怪的問題。當我使用鼠標滾輪滾動時,視圖會被調整,但是當我移動鼠標時,滾動條會跳回原來的位置。使用鼠標滾輪時,控制會自動滾動回來

但是,當我單擊滾動條並向上或向下拖動欄,然後使用鼠標滾輪時,問題就消失了。

我想發佈一些代碼,但我不知道要粘貼什麼代碼。這是處理滾動條的可見性的代碼:

protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified) 
{ 
    base.SetBoundsCore(x, y, ControlWidth, ControlHeight, specified); 
} 

ControlWidthControlHeight是計算控制的寬度和高度的自定義屬性。

編輯1: 類簽名:

public partial class TimeLineScheduleControl : UserControl 

編輯2:

我已經在窗體負載(其中控制是上)注意到的,AutoScrollPositionY值被設置爲-51而不是0.

+1

你應該嘗試不同的鼠標,看看是否能解決問題。 – 2012-01-06 23:27:58

+0

我們可以看到這個完整的類簽名..需要看看什麼控制類繼承 – MethodMan 2012-01-06 23:30:21

+0

@PeteWilson我試過不同的鼠標,但仍然有問題 – Martijn 2012-01-06 23:40:19

回答

0

這就是你的代碼應該看起來像從類級別,它應該工作,因爲你重寫初始基本方法 我發佈這只是作爲一個前充足,所以你有東西要遵循.. 嘗試重新啓動,如果它不工作或新的鼠標..是這是一個USB/USB紅外鼠標。

public class YourClass : UserControl 
{ 
    protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified) 
    { 
     if (height > 35) 
     { 
      height = 35; 
     } 
     base.SetBoundsCore(x, y, width, height, specified); 
    } 
} 
+0

我試過重新啓動,我試過了一個不同的鼠標。兩者都沒有成功。我的控件繼承自'UserControl'。 – Martijn 2012-01-06 23:39:49

0

對不起,我現在覺得很愚蠢。這是你永遠不會想到的。

控件所在的表單已註冊到控件的MouseMove。當鼠標移動觸發時,我設置了標籤的Text屬性。這個標籤位於我的表單之上。所以當我使用鼠標滾輪滾動時,隨後鼠標移動觸發,滾動條由於某種原因跳回。

不,我不使用鼠標移動事件更多,一切都會按預期...