我有一个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
中的某些内容成为焦点时,我该如何解雇?
答案 0 :(得分:0)
问题在于,Label和PictureBox控件不是可选控件,因此无法通过鼠标点击获得焦点。
你能做的是处理鼠标点击事件并检查你是否已经点击了PresentationCell。如果启动了PresentationCell,您可以编程方式设置焦点,如下所示:
hitPresentationCell.Focus();
这将触发GotFocus事件。
在OnFocus方法中,您必须将焦点切换到另一个控件,否则事件将无休止地触发。