c# 自定义添加了控件,我想要删除其中的一个,请问要怎么做?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 自定义添加了控件,我想要删除其中的一个,请问要怎么做?相关的知识,希望对你有一定的参考价值。
我设置了一个按钮,点击一次就添加一个Label控件,控件都添加在了Controls集合中(控件的个数是随机的),请问怎么通过选定某一个控件,只删除它本身,其他的控件不变。
事件里面的sender可以获得是谁发起了这次点击,把sender转换为label,然后再删除private void Form1_Load(object sender, EventArgs e)
for (int i = 0; i < 10; i++)
Label lb = new Label();
lb.Text = "编号"+i;
lb.Width = 45;
lb.Height = 20;
lb.Location = new Point(20 + i*45, 50);
lb.Click += new EventHandler(lb_Click);
this.Controls.Add(lb);
void lb_Click(object sender, EventArgs e)
Label lb = sender as Label;
this.Controls.Remove(lb);
参考技术A 本来是想
foreach (Control c in this.Controls)
if (c.Focus())
this.Controls.Remove(c);
发现个问题。。。。
label,你是怎么选中的?追问
选中很容易呀,可以弄一个鼠标点击的响应,或者是鼠标右键菜单事件,但是这个C 确定不了呀
追答private void button1_Click(object sender, EventArgs e)
Label a = new Label();
t += 100;
a.Location = new System.Drawing.Point(t, t);
a.Text = t.ToString();
a.MouseClick += new MouseEventHandler(a_MouseClick);
this.Controls.Add(a);
void a_MouseClick(object sender, MouseEventArgs e)
this.Controls.Remove((Control)sender);
我怎么能捕捉到想删除的label是哪个呢?控件的个数是无法知道的,我label的命名就只是在集合中的位置而已。Controls.Remove(),这个我知道,就是括号里的内容无法确定
追答请问怎么通过选定某一个控件,只删除它本身,其他的控件不变。
你的问题描述中选定某一个控件?你是怎么选择的?为什么选定了某一个控件,还无法知道是哪一个Label呢?
我怎么样才能知道要把哪个label的显示值设为不可见呢?我是任意选择一个label删除的
追答你可以新建一个text设他为不可见 当Label MouseCick事件时 让label的name=text1.text 这样不就可以知道你选择的label是那个了吗? 然后你要删除那个label 让要删除的label的name=text1.text的值 要注意他们值的类型可能不一样先强制转换下就好
请问如何在c#中用WPF调用Winform变写的用户控件,知道的请给予解说,谢谢!
我在Winform里面编写了一个用户自定义控件,现在我建立一个WPF项目,如何在该项目中使用Winform编写的用户控件呢 ?
参考技术A 那个 控件 是CS 文件么?如果是 直接 把CS文件引入到项目中 引用相应命名空间即可。 参考技术B 添加WindowsFormsIntegration.dll用WindowsFormsHost 参考技术C 把自定义控件编译成DLL,然后添加引用 参考技术D http://msdn.microsoft.com/en-us/library/ms751761.aspx
不知道你能不能看懂。这个绝对能帮助你的。我也遇到此问题,解决了。
Hosting a Windows Forms Control in WPF
参考资料:http://msdn.microsoft.com/en-us/library/ms751761.aspx
以上是关于c# 自定义添加了控件,我想要删除其中的一个,请问要怎么做?的主要内容,如果未能解决你的问题,请参考以下文章