单击控件后,C#Windows窗体/用户控件不能用鼠标滚轮滚动[复制]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我在Visual Studio 2013中使用C#构建了一个Windows窗体,它有一个实际的Form.cs.我在Form.cs中有一个面板,我根据需要对接/填充UserControl.cs文件。 UserControls是我用作实际的“用户输入表单”,供用户填写控件/字段并提交所需数据。除了使用鼠标滚轮滚动外,我完全/正确地工作。

这是我试图找到解决方案的典型场景;当用户首先导航到其中一个UserControl时,他们可以单击窗口的空白部分,它将允许使用右侧的垂直滚动条或使用鼠标滚轮进行滚动。但是,当用户单击UserControl中的任何控件,文本框,列表框,组合框等时,鼠标滚动将不再滚动窗口。我无法通过将焦点从控件/字段移动到UserControls背景或其他位置来找到如何允许鼠标滚轮滚动,以使用户鼠标滚轮停止滚动窗口。

我必须明确的一件事是UserControls确实有垂直滚动条,因此用户可以单击滚动条向上/向下移动窗口,因此这部分不是问题。我刚刚找不到允许用户在点击UserControl“表单”中的任何控件/字段后使用鼠标滚轮滚动的方法。如何将焦点从任何控件/字段移到UserControls背景或其他位置以允许鼠标滚轮滚动窗口/窗体/ UserControl?

编辑:我在Form.cs和停靠面板上将AutoScroll设置为False,但是,我在每个UserControl上将AutoScroll设置为True。这允许右手滚动条渲染和使用,但这似乎对鼠标滚动没有任何影响。我尝试过设置AutoScroll的所有组合都没有成功。

编辑(2):* *表格 - panel1 ^ UserControl1.cs ^ UserControl2.cs ^ UserControl3.cs ^ UserControl4.cs ^ UserControl5.cs

每个UserControl都会根据用户选项应用于/在panel1上呈现。每个UserControl在右侧都有垂直滚动条渲染。用户单击/选择任何控件(文本框,列表框,组合框)以输入/选择数据后,鼠标滚动功能无效。无论点击什么控件并具有焦点,焦点都不会移动到允许鼠标滚轮滚动窗口。

c# winforms scroll user-controls
1个回答
0
投票

这不是我认为最理想的答案,但您可以将Form.Focus();添加到表单中每个Control的Scroll事件中。

© www.soinside.com 2019 - 2024. All rights reserved.