我有一个自定义控件DigitalPanel
,它有一个FlowLayoutPanel(viewPanel
),它充满了自定义控件(DigitalIndicator
)。当用户单击viewPanel
中的DigitalIndicator
时,我想将此事件通知DigitalPanel
。目前我看viewPanel
的onMouseClick事件,但这只触发当DigitialIndicators
之间的空格被点击,而不是当他们点击自己。
因此,从我在堆栈溢出上收集的内容来看,我需要从每个DigitalIndicator
中获得onMouseClick
事件,然后将其添加到viewPanel
中,并从viewPanel
的onMouseClick
事件中观察这些事件。
那么如果点击DigitalIndicator
,它将引发事件,viewPanel
将看到它,然后引发onMouseClick
事件,DigitalPanel
将看到并处理?
我的问题是我不确定如何从它得到DigitalIndicator
的onMouseClick
事件。
//当一个新的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对象作为发送者(在上述步骤中传递)