gpt4 book ai didi

c# - 输入事件未在 UserControl 内的面板中触发

转载 作者:太空宇宙 更新时间:2023-11-03 11:22:47 25 4
gpt4 key购买 nike

我在设计时在 UserControl 中添加了一个面板。

然后,我将这个控件添加到一个表单中。

我想在控件获得焦点时显示焦点虚线边框。

不幸的是,面板中的 Enter 事件永远不会触发。当我单击用户控件本身时,我只会着火。

扩展这个问题。如何将事件从用户控件内的控件转发到基本用户控件? Hans Passant 在 this 中的评论问题说默认情况下事件被转发给他们的直接父级。我没有更改控件的任何属性。我究竟做错了什么?我是否需要更改每个控件的明显属性以强制它转发未处理的事件?

我正在使用 DevExpress 控件,但这种行为在 Windows WinForms 控件中是相同的。

编辑:我知道面板可能无法获得焦点。如果这是真的,我如何将每个鼠标事件转发到父控件?

最佳答案

根据您的评论,从您的 UserControl 内部处理面板的 MouseDown 事件并将焦点设置到父控件:

public UserControl1() {
InitializeComponent();
panel1.MouseDown += new MouseEventHandler(panel1_MouseDown);
}

void panel1_MouseDown(object sender, MouseEventArgs e) {
if (!this.Focused)
this.Focus();
}

关于c# - 输入事件未在 UserControl 内的面板中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10386783/

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