1 c# dynamic button right-click winforms
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);
}
Run Code Online (Sandbox Code Playgroud)
目前,我正在 Visual Studio 2017 中使用 C# 制作一个小益智游戏。我动态创建了一些按钮,当我左键单击它时,它会执行一些操作。目前,当我右键单击它时,什么也没有发生。我不知道如何为每个按钮添加“右键单击”事件。如果我右键单击它,它们应该都会执行相同的操作。
有人解决这个问题吗?
谢谢
这是因为您使用了错误的单击事件处理程序。不要使用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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1680 次 |
| 最近记录: |