2014-02-15 85 views
0

在我的應用程序中,你右鍵單擊一個圖片框,它帶來了一個tooltrip項目來改變該圖片框圖像,當你點擊一個選項,我的問題是如何知道哪個圖片框被點擊爲了只更改被右鍵單擊的圖片框的圖像,而不是爲每個圖片框創建1個工具條項目?檢測哪個圖片框被右鍵點擊

更新,找到解決方案。

private void redToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
    var box = ((ContextMenuStrip)(((ToolStripMenuItem)sender).Owner)). 
       SourceControl; 
    if (box == PictureBox1) 
    { 
     PictureBox1.Image = Form1.Properties.Resources.red_square_button; 
    } 
    else if (box == PictureBox2) 
    { 
     PictureBox2color = "red"; 
     PictureBox2.Image = Form1.Properties.Resources.red_square_button; 
    } 
} 

說明:當您單擊工具條菜單項時,代碼只會影響被右鍵單擊的圖片框。

回答

3

訂閱相同的事件處理程序到MouseClick事件的所有圖片框。然後抹上事件的發送者PictureBox得到的PictureBox的實例,它引發的事件:

private void pictureBox_MouseClick(object sender, MouseEventArgs e) 
{ 
    if (e.Button != MouseButtons.Right) 
     return; 

    PictureBox picutreBox = (PictureBox)sender; 
    // use picutreBox 
} 
+0

那麼什麼是點擊工具條項目時怎麼辦? – Joscplan

+0

@JoseCardama你想*'檢測哪個圖片框被右鍵點擊'*。如果你想以後使用它,那麼你可以將它保存在'CurrentPictureBox'字段中 –

+0

我想要的是當單擊一個工具條項目時,改變被右鍵單擊的圖片框的圖像。 – Joscplan