C#如何让标签数组中的标签在点击时消失?

时间:2017-01-21 20:39:51

标签: c# arrays label

我的代码使5个标签出现随机.Left位置,您可以看到它。 当我点击它时,我希望特定的标签消失,但我不知道如何告诉我的点击空白。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    Label [] kubeliai = new Label [5];
    int poz = 100;

    private void Form1_Load(object sender, EventArgs e)
    {
        for (int i = 0; i < kubeliai.Length; i++)
        {
            kubeliai[i] = new Label();
            Controls.Add(kubeliai[i]);
            Random pos = new Random();
            kubeliai[i].Top = 50;
            kubeliai[i].Left = poz;
            poz += pos.Next(50, 200);
            kubeliai[i].BackColor = Color.Red;
            kubeliai[i].Height = 20;
            kubeliai[i].Width = 20;
            kubeliai[i].Click += new EventHandler(kubelio_clickas);
        }
    }
    void kubelio_clickas (object sender, EventArgs e)
    {

    }
}

3 个答案:

答案 0 :(得分:2)

点击&#34;&#34;&#34;标签位于sender参数:

 void kubelio_clickas (object sender, EventArgs e)
    {
        Label clickedLabel = sender as Label;
        if (clickedLabel != null) {
           clickedLabel.Visible = false;
        }
    }

因为在.NET Event Handlers中默认使用对象作为sender的类型,所以必须先将其强制转换为Label

答案 1 :(得分:1)

  

我希望特定标签在我点击时消失

只需将标签的.Visible属性设置为false:

void kubelio_clickas (object sender, EventArgs e)
{
    if (sender is Label)
        ((Label)sender).Visible = false;
}

答案 2 :(得分:0)

对象sender是对触发事件的对象的引用。所以基本上,发件人是你正在寻找的对象。

你只需要将其设置为不可见:

((Label)sender).Visible = false;