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

时间:2018-01-16 14:28:55

标签: c# winforms

我有一个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中的某些内容成为焦点时,我该如何解雇?

1 个答案:

答案 0 :(得分:0)

问题在于,Label和PictureBox控件不是可选控件,因此无法通过鼠标点击获得焦点。

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

hitPresentationCell.Focus();

这将触发GotFocus事件。

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