c# - 如何判断哪个面板触发了点击事件

标签 c# winforms events sender

我有一组面板控件,它们以编程方式放置在我的表单中的不同位置。下面您可以看到,当我循环遍历并增加 I 时,所有面板都注册了相同的事件处理程序。这对我来说很好,但我无法在事件处理程序代码中找到一种方法来判断哪个面板触发了事件。我尝试使用 sender 但我似乎无法弄清楚如何使用它。所以我的问题是如何在事件处理程序代码中判断哪个面板触发了事件

     Panels[i].Click += new EventHandler(AllPanels_Click);

  void AllPanels_Click(object sender, EventArgs e)
        {
           //need logic code here!
        }

最佳答案

首先将sender 转换为Panel:

void Form1_Click(object sender, EventArgs e)
{
    Panel clickedPanel = sender as Panel;
    if (clickedPanel != null)
    {
        // do something with clickedPanel
    }
}

关于c# - 如何判断哪个面板触发了点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13596409/

相关文章:

c# - 来自 CloudTable.ExecuteBatch(..) 的意外响应代码

c# - 从 WinForms 应用程序发送带有附件的电子邮件?

java - 监听器鼠标输入并同时按下按键

Magento `customer_save_before` 事件

java - 从 grails 事件调用 grails 命令?

c# - OneDrive SDK & 后台任务 WP8.1

c# - UWP 中的 ListView

c# - 使用枚举访问 xaml 中的数组

vb.net - 在 VB.NET 中切换 TopMost

winforms - 中心文本对齐标签