将变量传递给.NET中的事件

Rob*_*Rob 1 c# events

例如,我有一个图片框列表,一旦光标悬停在它们上面就会引发事件.然而,我不仅需要以某种方式提升此事件,还要传递"i"变量,以便我知道哪个图片框上有光标.

for (int i = 0; i < 25; i++)
{
....
pbList.Add(new PictureBox());

pbList[i].MouseHover += new System.EventHandler(this.beeHideInfo);
                                            //// need to pass "i" here
}
Run Code Online (Sandbox Code Playgroud)

    private void beeShowInfo(object sender, EventArgs e)
    {
        lb_beeInfo.Text = "You are hovering over: "+beeList[i].name;
                                               /// need to get this "i"
    }
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Joh*_*ers 5

您无法将变量传递给事件.

此外,必要的变量已经传递给你:sender.

sender是引发事件的对象的引用.在您的情况下,它是引发事件的PictureBox的引用.