【问题标题】:How to create clickable label [closed]如何创建可点击标签[关闭]
【发布时间】:2013-07-05 16:25:46
【问题描述】:

我想在我的表单应用程序中创建一个随机的可点击标签。我随机生成了一个标签,但我无法点击它。任何人都可以帮助我吗?

【问题讨论】:

标签: c# winforms c#-4.0


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您可以像往常一样挂钩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 } });
        }
    }
    

    这有点奇怪 - 标签显然不可点击。

    【讨论】:

    • 这显然是为了一个复活节彩蛋......
    • 令人惊讶的是,标签显然不可点击,因为它们有助于解决可访问性问题。它们被广泛用作 Web 开发中的可点击对象。我们倾向于设置它们的样式,使光标成为一个指针,使其更明显。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2018-05-26
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多