c# - C# Windows 窗体/用户控件在单击控件后不使用鼠标滚轮滚动
问题描述
我在Visual Studios 2013中使用C#构建了一个Windows Form ,它有一个实际的 Form.cs。我在 Form.cs 中有一个面板,我根据需要与 UserControl.cs 文件对接/填充。UserControls 是我用作用户填写控件/字段并提交所需数据的实际“用户输入表单”。除了用鼠标滚轮滚动外,我的一切都完全/正确地工作。
这是我试图寻找解决方案的典型场景;当用户第一次导航到其中一个 UserControls 时,他们可以单击窗口的空白部分,这将允许使用右侧的垂直滚动条或使用鼠标滚轮进行滚动。但是,当用户单击 UserControl 中的任何控件、文本框、列表框、组合框等时,鼠标滚动将不再滚动窗口。我无法找到如何通过将焦点从控件/字段移到 UserControls 背景或其他位置来允许鼠标滚轮滚动以允许用户鼠标滚轮滚动窗口。
我必须明确的一件事是 UserControls 确实有可用的垂直滚动条,因此用户可以单击滚动条向上/向下移动窗口,因此这部分不是问题。我只是无法找到一种方法来允许用户在单击 UserControl“表单”中的任何控件/字段后使用鼠标滚轮滚动。如何将焦点从任何控件/字段移到 UserControls 背景或其他位置以允许鼠标滚轮滚动窗口/表单/UserControl?
编辑:我在 Form.cs 和停靠面板上将 AutoScroll 设置为 False,但是,我在每个 UserControls 上都将 AutoScroll 设置为 True。这允许渲染和使用右侧滚动条,但这似乎对鼠标滚动没有任何影响。我已经尝试了设置 AutoScroll 的所有组合,但都没有成功。
编辑(2): * * 表单 - panel1 ^ UserControl1.cs ^ UserControl2.cs ^ UserControl3.cs ^ UserControl4.cs ^ UserControl5.cs
根据用户选项,每个 UserControl 都被应用到/呈现在 panel1 上。每个 UserControl 在右侧都有垂直滚动条呈现。用户单击/选择任何控件(文本框、列表框、组合框)以输入/选择数据后,鼠标滚动不起作用。无论单击什么控件并获得焦点,焦点都不会移动以允许鼠标滚轮滚动窗口。
解决方案
这不是我认为最理想的答案,但您可以添加Form.Focus();
到表单中每个控件的滚动事件。
推荐阅读
- php - 将 JSON 解析为变量或 MySQL
- python-3.x - Python 3 中的滑动拼图,从哪里开始?
- c++ - 当 C++ 中的 I2C 值更改时收到通知
- python - 无法通过按钮单击将文本附加到文本字段。姜戈
- c - 在 OpenCL C 中编写快速线性系统求解器
- javascript - 为什么这会向欢迎消息发送垃圾邮件?
- reactjs - Heroku 中的公用文件夹不使用图像和路由
- c# - 发布asp net core 3.1 app时如何定义appsetting属性
- javascript - 如何检测onclick事件是否已被孩子处理
- python - Python/Tkinter:滚动条小部件中鼠标事件的顺序不同