2011-12-30 53 views
0

我正在用C#在鋼琴上工作。我遇到了一個小問題。哪個pictureBox被選中? C#

我有一個鋼琴鍵盤當被按下時,顯示對員工的相關注意事項。

創建的註釋被存儲在類型圖片框的數組,稱爲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"; 
    } 

我只是測試,看看第一個音符是否被點擊。爲什麼這不起作用?

這裏是它增加了在PictureBox(包含註釋)的工作人員(·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++; 
    } 

請問我的事件處理程序有什麼問題?另外,我能做些什麼來確定點擊的圖片框陣列中的位置?謝謝

+3

您在'mouseclick'事件訂閱,訂閱當你創建一個'picturebox' – Tigran 2011-12-30 10:20:23

+0

謝謝:)它現在:) – Clayton 2011-12-30 10:24:06

回答

1

正如在第一評論說,您訂閱在一個錯誤的位置的事件。

還可以使用事件處理程序知道被點擊其中的PictureBox的sender參數(它將包含圖片框的實例)。

+0

謝謝:)現在的作品完美:) – Clayton 2011-12-30 10:36:31