【问题标题】:Which pictureBox was selected? C#选择了哪个图片框? C#
【发布时间】:2011-12-30 18:26:00
【问题描述】:

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

请问我的事件处理程序有什么问题?另外,我能做些什么来识别被点击的图片框数组中的位置?谢谢

【问题讨论】:

  • 你在mouseclick事件中订阅,在创建picturebox时订阅

标签: c# events handler image


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-05-03
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    相关资源
    最近更新 更多