gpt4 book ai didi

c# - 表单上所有控件的一个事件处理程序

转载 作者:太空狗 更新时间:2023-10-29 23:02:20 24 4
gpt4 key购买 nike

我在为表单上的所有控件设置相同的事件处理程序时遇到了问题。我想在我的应用程序中统一处理按下的 f5-f7 按钮,所以我尝试为窗体上的所有控件注册相同的事件处理程序。我插入了

foreach (System.Windows.Forms.Control cont in this.Controls)
cont.KeyDown += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyPress);

在自动生成 ResumeLayout/PerformLayout 调用之前的 InitializeComponent() 函数中。不要介意名称 MainForm_KeyPress,它现在实际上是一个 KeyDown 事件处理程序。

我还尝试将代码插入从构造函数调用的 init() 函数中。但结果是一样的:当我按下按键时,事件没有发生。焦点位于表单的按钮之一。

但是,如果我使用设计工具(将函数名称复制到 KeyPress 事件字段)为其中一个按钮实现处理程序,则如果按钮处于焦点状态,事件将正确引发。

知道为什么 foreach 不起作用吗?

最佳答案

MSDN 说你可以设置 KeyPreview为真。

关于c# - 表单上所有控件的一个事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7410569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com