哪个pictureBox被选中了?c#

本文关键字:pictureBox 哪个 | 更新日期: 2023-09-27 18:19:15

我正在用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";
    }

我只是测试,看看是否第一个音符被点击。为什么这不起作用?

下面是将图片框(包含注释)添加到staff (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++;
    }

我的事件处理程序有什么问题?另外,如何确定所单击的图片框在数组中的位置?谢谢你

哪个pictureBox被选中了?c#

正如第一条评论所说,您在错误的位置订阅了该事件。

还可以使用事件处理程序的sender参数来知道单击了哪个图片框(它将包含一个图片框的实例)。