2014-09-27 48 views
-1
private void panel1_MouseClick(object sender, MouseEventArgs e) 
     { 
      if (e.Button == MouseButtons.Right) 
      { 
       ColorDialog cd = new ColorDialog(); 
       if (cd.ShowDialog() == DialogResult.OK) 
       { 
        this.panel3.BackColor = cd.Color; 
       } 
      } 
     } 

private void panel1_MouseDown(object sender, MouseEventArgs e) 
     { 
      Panel pnl = sender as Panel; 
      if (pnl != null) 
       pnl.DoDragDrop(pnl.BackColor, DragDropEffects.Move); 
     } 


    private void panel2_DragDrop(object sender, DragEventArgs e) 
    { 
     var data = e.Data.GetData(typeof(Color)); 

     if (data != null) 
      ((Panel)sender).BackColor = (Color)data; 
    } 

    private void panel2_DragEnter(object sender, DragEventArgs e) 
    { 
     e.Effect = DragDropEffects.Move; 
    } 

我想,如果我按PANEL1應該顯示顏色選擇顏色對話框內點擊右鍵,然後我可以將PANEL1顏色拖放到是Panel2。 但這段代碼後colpetion最終拖放工作,但沒有工作panel1右鍵點擊 幫助我?右擊面板不工作

回答

0

在鼠標右擊首先調用mouse down事件,因此它的,所以你試過像這樣的鼠標按下事件

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

      Panel pnl = sender as Panel; 
      if (pnl != null) 
       pnl.DoDragDrop(pnl.BackColor, DragDropEffects.Move); 
      } 
     } 
+0

我改變鼠標按下事件,但沒有得到解決,而不是解僱右擊 – Varta 2014-09-27 09:04:51

+0

添加後不能調用mouse click事件這個條件它的工作對我來說很好 – Sathish 2014-09-27 09:06:39

+0

k,對不起,我的錯誤 – Varta 2014-09-27 09:12:03