我在表单上有两个FlowLayoutPanels
:PanelA
和PanelB
。每个都将在运行时填充多个控件,以便面板滚动(即AutoScroll
为真)。
问题在于:每个面板填充的控件都包含ComboBox
。因此,组件框而不是面板消耗MouseWheel
个事件。我希望小组使用MouseWheel
个事件。
如果子控件上没有可滚动控件,则MouseWheel
事件会跳过子控件(不处理它)并点击面板,它会处理它。如何设置我的子控件的组合框以忽略MouseWheel
事件?我可以告诉它重新举起活动吗?
我试图只要其中一个子控件勾选'MouseEnter'事件就将Focus应用于Parent;这修复了滚动问题,但也使子控件完全不可编辑。
我从挖掘中发现的其他东西涉及直接摆弄Windows API,但我发现很难相信这样的东西是必需的。
答案 0 :(得分:1)
我测试了以下代码,它似乎是您问题的解决方案。基本上你需要在点击它时关注'FlowLayoutPanel',或者你的鼠标输入它:
private void newCheckListQuestionPanel_Click(object sender, EventArgs e)
{
newCheckListQuestionPanel.Focus(); //allows the mouse wheel to work after the panel is clicked
}
private void newCheckListQuestionPanel_MouseEnter(object sender, EventArgs e)
{
newCheckListQuestionPanel.Focus(); //allows the mouse wheel to work after the panel has had the mouse move over it
}