如何克隆panel及子控件的事件,求助!!!

Tar-Palantir 2011-05-30 10:08:00
在panel1中有两个combobox,分别是combobox1和combobox2,还有一个删除按钮DelBtn,在panel1外(即窗体中)有一个添加按钮AppendBtn。

当我点击AppendBtn时,在panel1下添加一个panel2,panel2克隆于panel1,只是位置在panel1下方,再点击AppendBtn时,在panel2下添加一个panel3……

当点击panel中的DelBtn时,删除该panel。不知道我说清楚了没,大致和邮箱中添加附件的方式相同,不过我这里是winform的。

望各位大神帮帮忙,最好能给出具体点的代码。

使用控件遍历添加的方法我知道,panel也没有clone的方法,使用panel2=panel1的方法只相当于将panel1改名叫panel2,至于使用反射的方法我就不清楚如何实现了。

这有几个关键问题:1、如何更有效的添加panel及其中的控件 2、如何添加每个panel中删除按钮的click事件(newBtn.Click+=new EventHandler((sender1,e1) => {button1.PerformClick()});该表达方法在VS05不能用吗?)
...全文
176 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
平凡的傲娇 2012-02-25
  • 打赏
  • 举报
回复
上面的那些代码放哪里呀 怎么看到效果呀
平凡的傲娇 2012-02-25
  • 打赏
  • 举报
回复
用的是C# Winform没有用户控件 等大神
Tar-Palantir 2011-05-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 caozhy 的回复:]

新建-用户控件,叫Panel1

把Panel1拷贝、粘贴过来。
[/Quote]

学习了,明天再向大神请教,谢谢
threenewbee 2011-05-30
  • 打赏
  • 举报
回复
新建-用户控件,叫Panel1

把Panel1拷贝、粘贴过来。
threenewbee 2011-05-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 astaldo 的回复:]
Panel1 p1 = new Panel1();
p1.Name = "p1";
p1.Top = 0;
Controls.Add(p1);
Panel1 p2 = new Panel1();
p2.Name = "p2";
p2.Top = p1.Height + 20;
Controls.Add(p2);

Panel1是一个实例了,怎么能当做类来new呢?难道在VS10可……
[/Quote]
将Panel1封装为一个用户控件。
Tar-Palantir 2011-05-30
  • 打赏
  • 举报
回复
Panel1 p1 = new Panel1();
p1.Name = "p1";
p1.Top = 0;
Controls.Add(p1);
Panel1 p2 = new Panel1();
p2.Name = "p2";
p2.Top = p1.Height + 20;
Controls.Add(p2);

Panel1是一个实例了,怎么能当做类来new呢?难道在VS10可以?望大神继续指点
threenewbee 2011-05-30
  • 打赏
  • 举报
回复
何更有效的添加panel及其中的控件

直接 new 一个新的 Panel 出来就可以了(不需要Panel2,重用Panel1):
Panel1 p1 = new Panel1();
p1.Name = "p1";
p1.Top = 0;
Controls.Add(p1);
Panel1 p2 = new Panel1();
p2.Name = "p2";
p2.Top = p1.Height + 20;
Controls.Add(p2);

C#2.0不支持Lambda,可以使用匿名委托:
newBtn.Click += new EventHandler(delegate(Object sender1,EventArgs e1)
{
button1.PerformClick();
});
大家好,又见面了!EasyUI又更新了,这次更新内容还是不少的,具体内容请参考下面的更新说明,官方的更新说明中还少了1条,我给补上了。 jQuery EasyUI 1.3.5版本更新内容: Bug(修复) searchbox:修复“searcher”函数提供的“name”参数值错误的问题; combo:修复“isValid”方法无法返回布尔值的问题; combo:修复点击页面某一个combo组件的下拉列表时触发的“onHidePanel事件会导致页面上其他combo组件的下拉列表被关闭的问题; combogrid:修复某些从combo组件继承来的方法无法使用的问题。 Improvement(改进) datagrid:改进检查行时候的性能; menu:允许追加菜单分隔符; menu:新增“hideOnUnHover”属性用于在鼠标离开菜单的时候指示是否需要隐藏菜单; slider:新增“clear”和“reset”方法; tabs:新增“unselect”方法、“onUnselect”事件; tabs:新增“selected”属性,用于指定的默认打开的面板; tabs:Tab Panel(Tab页)新增“collapsible”属性,用于设置是否允许摺叠面板; tabs:新增“showHeader”属性、“showHeader”方法和“hideHeader”方法; combobox:允许“disabled”属性禁用下拉列表选项; tree:改进数据加载时候的性能; pagination:新增“layout”属性,用于自定义控件的样式布局; accordion:新增“unselect”方法、“onUnselect”事件; accordion:新增“select”和“multiple”属性; accordion:新增“getSelections”方法; datebox:新增“sharedCalendar”属性,允许多个datebox控件共享使用同一个calendar控件。 datebox:新增“buttons”属性,用于自定义日历下方的按钮。 (译者注:该点更新内容官方更新公告上没有注明,具体内容和用法请看datebox的API。) 历史版本: - jQuery EasyUI 1.3.4 离线API简体中文版 http://download.csdn.net/detail/richie696/6302785 - jQuery EasyUI 1.3.4 离线API简体中文版 http://download.csdn.net/detail/richie696/5363933

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧