我正在用C#制作钢琴。我遇到了一个小问题。
我有一个钢琴键盘,当按下时,会在工作人员上显示相关的音符。
创建的注释存储在PictureBox类型的数组中,称为picBox。我构建了以下事件处理程序,但它无法正常工作。
private void pictureBox_Click(object sender, MouseEventArgs e)
{
picBox[0].MouseDown += new MouseEventHandler(pic_Click); //testing for first location
}
private void pic_Click(object sender, MouseEventArgs e)
{
ClickedTextBox.Text = "I was clicked";
}
我只是在测试是否点击了第一个音符。为什么这不起作用?
以下是将图片框(包含笔记)添加到工作人员(panel3)的方法。
public void addPictureBox(int x, int y, Image image)
{
picBox[cnt] = new PictureBox();
picBox[cnt].Image = image;
picBox[cnt].Location = new Point(x, y);
picBox[cnt].BackColor = Color.Transparent;
panel3.Controls.Add(picBox[cnt]);
picBox[cnt].BringToFront();
cnt++;
}
请问我的事件处理程序有什么问题?另外,我该怎么做才能识别出图片框数组中的位置?谢谢
答案 0 :(得分:1)
如第一条评论中所述,您在错误的位置订阅了该活动。
还可以使用事件处理程序的sender
参数来了解单击了哪个图片框(它将包含图片框的实例)。