用于多个动态创建的控件的 c# 事件处理程序
c# event handler for multiple dynamically created control
我有一个循环可以创建 1 或 10 或 584575(例如,实际上不是真的)FlowLayoutPanels
。对于所有这些面板,我想要一个悬停事件处理程序,或者以后可能需要另一种类型的事件处理程序,但现在只需要悬停。
如何为 多个 相同类型创建的控件做到这一点?
FlowLayoutPanel finalResult_panel = new FlowLayoutPanel{
FlowDirection = FlowDirection.LeftToRight,
BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle,
Name = "result_flowLayoutPanel" + i,
Size = new System.Drawing.Size(790, 72),
TabIndex = i,
};
您可以像这样附加处理程序
finalResult_panel.MouseHover += panel_MouseHover;
private void panel_MouseHover(object sender, EventArgs e)
{
}
或者您可以创建一个匿名委托
finalResult_panel_MouseHover += (s,e) => {
//event code
};
这些会将相同的处理程序附加到每个面板,因此如果您需要区分,您可以在处理程序本身中执行此操作(使用 sender
属性)或在附加处理程序之前以某种方式进行区分.
我有一个循环可以创建 1 或 10 或 584575(例如,实际上不是真的)FlowLayoutPanels
。对于所有这些面板,我想要一个悬停事件处理程序,或者以后可能需要另一种类型的事件处理程序,但现在只需要悬停。
如何为 多个 相同类型创建的控件做到这一点?
FlowLayoutPanel finalResult_panel = new FlowLayoutPanel{
FlowDirection = FlowDirection.LeftToRight,
BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle,
Name = "result_flowLayoutPanel" + i,
Size = new System.Drawing.Size(790, 72),
TabIndex = i,
};
您可以像这样附加处理程序
finalResult_panel.MouseHover += panel_MouseHover;
private void panel_MouseHover(object sender, EventArgs e)
{
}
或者您可以创建一个匿名委托
finalResult_panel_MouseHover += (s,e) => {
//event code
};
这些会将相同的处理程序附加到每个面板,因此如果您需要区分,您可以在处理程序本身中执行此操作(使用 sender
属性)或在附加处理程序之前以某种方式进行区分.