コンボボックスがあり、ユーザーがマウスホイールでアイテムをスクロールできないようにしたい。
それを行う簡単な方法はありますか?
(C#、VS2008)
コンボボックスがあり、ユーザーがマウスホイールでアイテムをスクロールできないようにしたい。
それを行う簡単な方法はありますか?
(C#、VS2008)
ComboBoxにMouseWheelイベントを使用します。
void comboBox1_MouseWheel(object sender, MouseEventArgs e) {
((HandledMouseEventArgs)e).Handled = true;
}
注:コードでイベントを作成する必要があります:
comboBox1.MouseWheel += new MouseEventHandler(comboBox1_MouseWheel);
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;
}