我想在表单应用程序中创建一个随机可点击标签。我随机生成了一个标签,但我无法点击它。任何人都可以帮助我吗?
答案 0 :(得分:31)
您可以正常挂钩Click
事件:
using System.Windows.Forms;
class Test
{
static void Main()
{
Label label = new Label { Text = "Click me" };
label.Click += delegate { label.Text = "Clicked"; };
Application.Run(new Form { Controls = { label } });
}
}
虽然有点奇怪 - 标签显然无法点击。
答案 1 :(得分:7)
Jon Skeet为如何动态添加标签提供了一个很好的答案,因此我将添加随机组件。
using System.Windows.Forms;
class Program
{
private static Random Random = new Random();
static void Main()
{
var label = new Label { Text = "Click me!" };
label.Click += delegate { RandomizeLocation(label); };
EventHandler Load = delegate {
RandomizeLocation(label);
};
var form = new Form { Controls = { label } };
form.Load += Load;
Application.Run(form);
}
private static void RandomizeLocation(Control control)
{
var maxWidth = control.Parent.Width - control.Width;
var maxHeight = control.Parent.Height - control.Height;
var x = Random.Next(maxWidth);
var y = Random.Next(maxHeight);
control.Location = new Point(x, y);
}
}