64

コンボボックスがあり、ユーザーがマウスホイールでアイテムをスクロールできないようにしたい。

それを行う簡単な方法はありますか?

(C#、VS2008)

4

4 に答える 4

119

ComboBoxにMouseWheelイベントを使用します。

void comboBox1_MouseWheel(object sender, MouseEventArgs e) {
    ((HandledMouseEventArgs)e).Handled = true;
}

注:コードでイベントを作成する必要があります:

comboBox1.MouseWheel += new MouseEventHandler(comboBox1_MouseWheel);
于 2009-12-10T18:34:10.040 に答える
5

WPF の場合は、PreviewMouseWheel代わりにイベントを処理します。

またComboBox.IsDropDownOpen、 が展開されたときに選択範囲に多くの項目がある場合でも、ユーザーがマウス スクロールを使用できるようにすることを検討することをお勧めしComboBoxます。

もう 1 つのことは、アプリケーション全体に同じ動作を適用することです。

私は通常、次のコードを使用して上記のすべてを行います。

App.xaml

<Application.Resources>
    <Style TargetType="ComboBox">
        <EventSetter Event="PreviewMouseWheel" Handler="ComboBox_PreviewMouseWheel" />
    </Style>
</Application.Resources>

App.xaml.cs

private void ComboBox_PreviewMouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs e)
{
    e.Handled = !((System.Windows.Controls.ComboBox)sender).IsDropDownOpen;
}
于 2018-08-29T16:24:29.813 に答える