即使点击子元素也专注于父母

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

我有一个UserControl(我们称之为“PresentationCell”),它包含一个标签和一个PictureBox。在另一个使用这个PresentationCell的控件中,我添加了一个事件

presentationCell.GotFocus += OnFocus;

private void OnFocus(object sender, EventArgs e)
{
    if (sender is PresentationCell current)
        current.BackColor = Color.Azure;
}

如果我单击/聚焦于PictureBox内的标签或PresentationCell,则不会触发此操作。

PresentationCell中的某些东西成为焦点时,我该如何解雇呢?

c# winforms
1个回答
0
投票

这里的问题是,Label和PictureBox控件不是可选控件,因此它们无法通过鼠标单击获得焦点。

您可以做的是处理鼠标单击事件并检查您是否已经点击了PresentationCell。如果启动了PresentationCell,您可以以编程方式设置焦点,如下所示:

hitPresentationCell.Focus();

然后,这将触发GotFocus事件。

在OnFocus方法中,您必须将焦点切换到另一个控件,否则事件将无休止地触发。

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