【发布时间】:2017-01-23 07:41:18
【问题描述】:
我有一个FlowLayoutPanel,我动态添加了 50 个UserControl。面板垂直放置,每个用户控件都有一些只读标签。
我使用this.KeyPreview = true;
在表单中,这样我就可以使用事件处理程序Form1_KeyUp 来捕获keyUp 事件。
在这个事件处理程序中,我捕获了导航按钮 ↑、↓、→、←、PageUp 和 PageDown。
当我点击导航按钮 ↑ 时,前一个UserControl 在面板中被选中,当我点击 ↓ 时,下一个UserControl 被选中。这很好用。
客户还希望能够使用我在前面提到的事件处理程序Form1_KeyUp 中捕获的 PageUp 和 PageDown。
我希望我能找到可见的UserControl。假设具有索引 1,2,3,4 的UserControl 在面板中可见,那么当我使用 PageUp 时我可以在索引 1 处选择用户控件,当我单击 时我可以在索引 4 处选择用户控件PageDown.
欢迎任何帮助。
【问题讨论】:
-
如果可以看到控件的至少一个像素,您的意思是“可见”?
-
每个控件都有一个 Boolean (get/set) Visible 属性。您可以遍历控件或仅测试 Control.Visible
-
不是没有,但请花点时间来Tour。接受您认为有帮助的答案并支持问答有助于其他用户找到好的答案。
标签: c# winforms user-controls