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

参考技术B 直接Controls.Remove(label);追问

我怎么能捕捉到想删除的label是哪个呢?控件的个数是无法知道的,我label的命名就只是在集合中的位置而已。Controls.Remove(),这个我知道,就是括号里的内容无法确定

追答

请问怎么通过选定某一个控件,只删除它本身,其他的控件不变。

你的问题描述中选定某一个控件?你是怎么选择的?为什么选定了某一个控件,还无法知道是哪一个Label呢?

参考技术C 你可以吧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# 自定义添加了控件,我想要删除其中的一个,请问要怎么做?的主要内容,如果未能解决你的问题,请参考以下文章

c# asp.net,添加自定义控件

请问如何在c#中用WPF调用Winform变写的用户控件,知道的请给予解说,谢谢!

C# WinForm 自定义控件如何实现动态添加子控件

C# winform 控件拖动问题

C#下拉菜单最后一项自定义的实现

如何制作可以添加到工具箱的自定义控件DLL?