Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create clickable label [closed]

I want to create a random clickable label in my form application. I randomly generated a label but I can not click on it. Can any body help me?

like image 673
FarshidABZ Avatar asked Dec 05 '25 04:12

FarshidABZ


2 Answers

You can just hook into the Click event as normal:

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 } });
    }
}

It's a little odd though - labels aren't obviously clickable.

like image 125
Jon Skeet Avatar answered Dec 07 '25 16:12

Jon Skeet


Jon Skeet provided an excellent answer on how to add a label dynamically, so I will add the random component.

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);
    }
}
like image 25
Dustin Kingen Avatar answered Dec 07 '25 18:12

Dustin Kingen



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!