WinForms事件父卷轴

时间:2012-10-31 03:33:08

标签: c# .net winforms

我在表单上有两个FlowLayoutPanelsPanelAPanelB。每个都将在运行时填充多个控件,以便面板滚动(即AutoScroll为真)。

问题在于:每个面板填充的控件都包含ComboBox。因此,组件框而不是面板消耗MouseWheel个事件。我希望小组使用MouseWheel个事件。

如果子控件上没有可滚动控件,则MouseWheel事件会跳过子控件(不处理它)并点击面板,它会处理它。如何设置我的子控件的组合框以忽略MouseWheel事件?我可以告诉它重新举起活动吗?

我试图只要其中一个子控件勾选'MouseEnter'事件就将Focus应用于Parent;这修复了滚动问题,但也使子控件完全不可编辑。

我从挖掘中发现的其他东西涉及直接摆弄Windows API,但我发现很难相信这样的东西是必需的。

1 个答案:

答案 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
}