我的代码使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)
{
}
}
答案 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;