我有一个循环来制作具有此属性的多个面板:
1.Name
2.Left
3.Top
4.Width
5.Height
6.Backcolor
点击活动
我的问题出现在点击事件中 这个循环的每个面板都有这个事件。
如何获取此循环创建的面板名称。点击它?
这是我的代码
void showPanel()
{
VideoList list = new VideoList();
int left = 125;
int top = 50;
DirectoryInfo[] d = new DirectoryInfo("videos").GetDirectories();
foreach (DirectoryInfo dir in d)
{
Panel pnl = new Panel();
list.panel1.Controls.Add(pnl);
pnl.Cursor = Cursors.Hand;
if (!File.Exists("videos\\" + dir.Name + "\\image.jpg"))
pnl.BackColor = Color.LightGray;
else
{
pnl.BackgroundImageLayout = ImageLayout.Stretch;
pnl.BackgroundImage = Image.FromFile("videos\\" + dir.Name + "\\image.jpg");
}
pnl.Click += new EventHandler(pnl_Click);
pnl.Name = dir.Name;
pnl.Left = left;
pnl.Top = top;
pnl.Width = 150;
pnl.Height = 100;
left += 200;
if (left >= 750)
{
left = 125;
top += 150;
}
}
}
答案 0 :(得分:0)
您还没有包含事件处理程序实现(pnl_Click),它应该类似于:
private void pnl_Click(object sender, EventArgs e)
对您而言,重要的部分是sender
参数。这总是指启动事件的控件,在本例中是Click事件。
如果添加以下行:
Panel thisPanel = sender as Panel;
在事件处理程序实现开始时,您将能够通过使用例如thisPanel.Name