2014-09-27 2 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; 
    } 

Я хочу, если я нажму правой кнопкой мыши на панели 1, там должен быть показан диалог цвета для выбора цвета, тогда я могу перетащить цвет панели1 на панель2. , но после этого код colpetion, наконец, перетащил и обработал, но не работал panel1 правой кнопкой мыши помогите мне?rightclick panel не работает

ответ

0

В мыши щелкните правой кнопкой мыши первую вызвать mouse down событие поэтому его не вызывать mouse click событие, так что вы пытались, как это в мыши вниз события

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

+0

после оных это условие его работы отлично для меня – Sathish

+0

k, извините, моя ошибка – Varta

Смежные вопросы