2017-12-05 6 views
1
List<Button> buttonlist = new List<Button>(); 
for(int i = 0; i< 5;i++){ 
Button but = new Button(); 
but.Name = Convert.ToString(i); 
but.Location = new Point(50 + i * 20, 50); 
but.Size = new Size(20,20); 
buttonlist.Add(but); 
but.Click += delegate { 
//It's a Leftclick 
//Code do stuff 
} 
this.Controls.Add(but); 
} 

동적 생성 버튼에 이벤트를 그것을 클릭하십시오, 그것은 몇 가지 일을합니다. 현재 마우스 오른쪽 버튼을 클릭하면 아무런 변화가 없습니다. 각 단추에 "오른쪽 클릭"이벤트를 추가하는 방법을 모르겠습니다. 오른쪽 버튼을 클릭하면 모두 동일한 작업을 수행해야합니다.추가 마우스 오른쪽 단추로 클릭 2017 나는 왼쪽 및 할 때 나는이 동적으로 어떤 버튼을 만들고 난 비주얼 스튜디오에서 C 번호와 약간의 퍼즐 게임을 만들고있어 현재는 C#을

누구에게 해결책이 있습니까?

감사합니다.

답변

2

잘못된 클릭 이벤트 처리기를 사용하고 있기 때문입니다. MouseClick을 사용하지 마십시오. 오른쪽 클릭을 허용하지 않습니다.

using System; 
using System.Collections.Generic; 
using System.Drawing; 
using System.Windows.Forms; 

namespace Anything 
{ 
    public class Program 
    { 
     public static void Main(string[] _) 
     { 
      var form = new Form(); 
      List<Button> buttonlist = new List<Button>(); 
      for (int i = 0; i < 5; i++) 
      { 
       Button but = new Button(); 
       but.Name = Convert.ToString(i); 
       but.Location = new Point(50 + i * 20, 50); 
       but.Size = new Size(20, 20); 
       buttonlist.Add(but); 
       but.MouseUp += (s, args) => 
       { 
        if (args.Button == MouseButtons.Right) 
        { 
         // do your thing 
        } 
       }; 
       form.Controls.Add(but); 
      } 

      form.ShowDialog(); 

      Console.ReadKey(); 
     } 
    } 
} 
+0

분명히 다른 공식적인 문서에도 불구하고 귀하는 정확합니다. 단추를 마우스 오른쪽 단추로 클릭하면 Click 이벤트 및 MouseClick 이벤트가 실행되지 않습니다. +1. –

관련 문제