2013-01-10 33 views
0

禁用滾輪我有一個嵌套的控制佈局,例如:上組合框和氣泡到父

表(用戶表格)>的TabControl>用戶控件(自動滾屏,停靠填充)>分組框中(對接頂)>組合框

一個用戶體驗問題是,其中一個輸入框大部分時間關注焦點。當輸入框是一個組合框時,組合框將改變選擇,這是不需要的。我希望滾動到保持組合框在焦點滾動UserControl。

我試圖

combobox.MouseWheel += (s, e) => combobox.Parent.Focus(); 

但這似乎選擇更改後發生。另一方面,TextBox工作得很好。有沒有辦法讓鼠標滾輪上的組合框行爲像一個文本框?

回答

1

幾個月前,我有過這樣的情景:每個標籤中都有功能區選項卡,按鈕,文本框和組合框。我想用鼠標滾輪向下滾動(用於組合框),但是我的鼠標滾輪改變了標籤。它沒有影響組合框。

然後我創建了自己的繼承自該Ribbon控件的類。

public class MyRibbon : Ribbon { 

    public bool DisableMouseWheel { get; set; } 

    protected override void OnMouseWheel(MouseEventArgs e) { 
    if (!this.DisableMouseWheel) { 
     base.OnMouseWheel(e); 
    } 
    } 
} 

然後我重新構建我的解決方案。點擊解決方案資源管理器中的「顯示所有文件」按鈕,打開表單的設計器文件。文件中有兩行引用Ribbon類型,我用新的MyRibbon類替換了類型。

然後我訂閱了ComboBox的Enter和Left事件,我改變了DisableMouseWheel屬性。