ToolStripComboBox
услужливо раскрывает свой базовый элемент управления ComboBox
в его метко названном ComboBox
свойстве . Это позволяет нам получить доступ к его свойствам, методам и событиям, которые не были включены в ToolStripComboBox
.
И, как вы, вероятно, знаете, стандартный ComboBox
элемент управления выставляет MouseWheel
событие , которое срабатывает каждый раз, когда колесо мыши прокручивается, когда поле со списком имеет фокус.
Соединяя эти две вещи, мы можем добавить обработчик для базового события ComboBox
элемента управления ToolStripComboBox
элемента управления и переопределить его поведение по умолчанию.
Итак, если у вас есть форма, содержащая ToolStrip
и ToolStripComboBox
, вы можете использовать что-то вроде следующего кода:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//Attach a handler for the MouseWheel event
ToolStripComboBox1.ComboBox.MouseWheel += new MouseEventHandler(ToolStripComboBox_MouseWheel);
}
private void ToolStripComboBox_MouseWheel(object sender, MouseEventArgs e)
{
//Cast the MouseEventArgs to HandledMouseEventArgs
HandledMouseEventArgs mwe = (HandledMouseEventArgs)e;
//Indicate that this event was handled
//(prevents the event from being sent to its parent control)
mwe.Handled = true;
}
}
В качестве альтернативы, конечно, вы всегда можете создать подкласс существующего элемента управления ToolStripComboBox
и переопределить его поведение таким же образом, как показано выше.