当鼠标光标位于属于面板的组合框上时如何触发面板滚动事件

Posted

技术标签:

【中文标题】当鼠标光标位于属于面板的组合框上时如何触发面板滚动事件【英文标题】:How to fire a panel scroll event when a mouse cursor is on a combobox belonging to the panel 【发布时间】:2021-02-15 20:02:00 【问题描述】:

我使用 C# 开发了一个 Windows 窗体程序。

我添加了一个面板和一个属于该面板的组合框。 当鼠标光标未指向组合框时,发生了垂直鼠标滚动事件。但是当鼠标光标指向组合框时,鼠标垂直滚动事件并没有发生。

我认为我在为组合框配置鼠标事件时犯了一个错误。

能否告诉我必须配置组合框的哪个属性?我应该配置什么事件?

【问题讨论】:

【参考方案1】:

当光标指向Combobox时,焦点会在Combobox上,因此不会触发Panel的“鼠标滚动事件”。

也许您可以将方法绑定到 Panel 和 Combobox 的 MouseWheel 事件。

public Form1()

    InitializeComponent();
    // subscribe to MouseWheel
    panel1.MouseWheel += MouseWheelMethod;
    comboBox1.MouseWheel += MouseWheelMethod;


int i = 0;

private void MouseWheelMethod(object sender, MouseEventArgs e)

    Console.WriteLine(i++); // test

【讨论】:

以上是关于当鼠标光标位于属于面板的组合框上时如何触发面板滚动事件的主要内容,如果未能解决你的问题,请参考以下文章

需要鼠标滚动滚动用户控件

下拉列表与可滚动面板中的组合框分开

C# 在面板周围拖动控件

鼠标一放到输入框里就不见了,怎么回事????

如何使用鼠标滚轮滚动面板?

当用户将鼠标悬停在滑块上时,使光标成为手