将鼠标点击事件传递给控件



我有一个自定义控件DigitalPanel,它有一个FlowLayoutPanel(viewPanel),它充满了自定义控件(DigitalIndicator)。当用户单击viewPanel中的DigitalIndicator时,我想将此事件通知DigitalPanel。目前我看viewPanel的onMouseClick事件,但这只触发当DigitialIndicators之间的空格被点击,而不是当他们点击自己。

因此,从我在堆栈溢出上收集的内容来看,我需要从每个DigitalIndicator中获得onMouseClick事件,然后将其添加到viewPanel中,并从viewPanelonMouseClick事件中观察这些事件。

那么如果点击DigitalIndicator,它将引发事件,viewPanel将看到它,然后引发onMouseClick事件,DigitalPanel将看到并处理?

我的问题是我不确定如何从它得到DigitalIndicatoronMouseClick事件。

//当一个新的DigitalIndicator被添加时,这是来自DigitalPanel

DigitalIndicatior newDigInd= new DigitalIndicatior();
this.viewPanel.MouseClick += new System.Windows.Forms.MouseEventHandler(newDigInd.);

我不确定MouseEventHandler的参数应该是什么。建议吗?

如果您可以在viewPanel中定义事件,那么您可以执行以下操作

  • 在viewPanel (DigitalIndicatorClicked)中声明事件
  • 当DigitalIndicator被点击时,它的Click事件将引发viewPanel的事件DigitalIndicatorClicked,将发送者(DigitalIndicator)作为发送者传递给这个被触发的事件
  • 你的DigitalPanel将处理ViewPanel的DigitalIndicatorClicked事件。此事件处理程序还将接收原始DigitalIndicator对象作为发送者(在上述步骤中传递)

相关内容

  • 没有找到相关文章

最新更新