救人一命胜造七级浮屠(在线急等解决方法)谢谢了

hao376905769 2010-07-01 03:04:34
先我创建了两个用户自定义控件a,b,a上面有个button事件,b上面有一张图片,现在把a和panel放到页面c上,运行页面,单击页面c中的自定义控件a的button事件向让它把b添加到页面c的panel中


...全文
240 点赞 收藏 32
写回复
32 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ljfljf2006205 2010-07-01
private Control web=new Control ();
protected void Page_Load(object sender, EventArgs e)
{
Web1.ClickHander += new Web.webbuttonClickHander(ClickHander);
}

void ClickHander(object sender, EventArgs e)
{
UserControl uc = new UserControl();
web = uc.LoadControl("~/b.ascx");
PlaceHolder1.Controls.Add(web);
}
回复
边城的刀声 2010-07-01
楼主不用自己定义一个事件吧,你直接在页面c上侦听a控件的button的click事件不就行了,前提是你要在控件a的designer文件中,把它的button设置成public的
回复
hao376905769 2010-07-01
[Quote=引用 29 楼 wangrfermao 的回复:]

结贴率啊结贴率
[/Quote]
解决问题了,就结贴了
呵呵
回复
wangrfermao 2010-07-01
结贴率啊结贴率
回复
hao376905769 2010-07-01
找到解决方法了,不过出了点问题,谁能帮我看一下为什么吗?
用户控件a :
public delegate void webbuttonClickHander(object sender, EventArgs e);
public event webbuttonClickHander ClickHander;
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
if (ClickHander != null)
{
ClickHander(sender, e);
}
}
页面c:
private Control web=new Control ();
protected void Page_Load(object sender, EventArgs e)
{
Web1.ClickHander += new Web.webbuttonClickHander(ClickHander);
}

void ClickHander(object sender, EventArgs e)
{
UserControl uc = new UserControl();
web = uc.LoadControl("~/b.ascx");
PlaceHolder1.Controls.Add(web);
}
为什么我单击事件按钮if (ClickHander != null)这里为什么总是空的。
回复
hao376905769 2010-07-01
没有解决方法了吗?
回复
hao376905769 2010-07-01
[Quote=引用 21 楼 bclz_vs 的回复:]

首先你得把用户控件a的button事件,公布出来,让页面C注册上
在页面C中侦听a的button事件的方法里,把用户控件b添加到一个PlaceHolder控件上
[/Quote]
这个是一个网友给的答案,可是我在页面注册事件时注册不了,那位高手帮忙看一下怎么回事
http://hi.baidu.com/depluin/blog/item/361df9550b097f54d10906f7.html
回复
jingkunli 2010-07-01
用户控件,不常用!
帮顶!
回复
liyoubaidu 2010-07-01
路过。。。。。。。
回复
myhope88 2010-07-01
都是牛人啊
回复
hao376905769 2010-07-01

[Quote=引用 20 楼 hihitang 的回复:]

引用 17 楼 hao376905769 的回复:

引用 13 楼 hihitang 的回复:

private View View;
this.View = new View();
this.View.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | S……
[/Quote]
不好意思,可以有那句话说的不对,向你道歉了,对不起。不过我真的看你的代码,好像跟我说的没有什么关系啊,这是webfrom不是winfrom
回复
边城的刀声 2010-07-01
首先你得把用户控件a的button事件,公布出来,让页面C注册上
在页面C中侦听a的button事件的方法里,把用户控件b添加到一个PlaceHolder控件上
回复
hihitang 2010-07-01
[Quote=引用 17 楼 hao376905769 的回复:]

引用 13 楼 hihitang 的回复:

private View View;
this.View = new View();
this.View.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorSty……
[/Quote]


被讽刺的感觉真差,决定潜水!
回复
hao376905769 2010-07-01
[Quote=引用 16 楼 bclz_vs 的回复:]

C# code

UC_CmbcMoneySend uc = (UC_CmbcMoneySend)LoadControl("UserControls/UC_CmbcMoneySend.ascx");
uc.ID = "ucCmbcMoneySend" + sendType.ToString("D");
uc.EnableViewState = f……
[/Quote]
这个是a用户控件里的button事件吗?
回复
tashiwoweiyi 2010-07-01
回复
hao376905769 2010-07-01
[Quote=引用 13 楼 hihitang 的回复:]

private View View;
this.View = new View();
this.View.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
……
[/Quote]
真是高手啊,俺都看不懂着代码是什么意思
回复
边城的刀声 2010-07-01

UC_CmbcMoneySend uc = (UC_CmbcMoneySend)LoadControl("UserControls/UC_CmbcMoneySend.ascx");
uc.ID = "ucCmbcMoneySend" + sendType.ToString("D");
uc.EnableViewState = false;
uc.Total(data,sendType);
uc.StartDate = Convert.ToDateTime(txtStartDate.Value);
uc.EndDate = Convert.ToDateTime(txtEndDate.Value);
phUC.Controls.Add(uc);

再给你例子
回复
边城的刀声 2010-07-01
动态添加用户控件,得用PlaceHolder控件,不能用Panel的
回复
rice1999 2010-07-01
对了 A控件要引入B控件的命名空间
回复
hihitang 2010-07-01
private View View;
this.View = new View();
this.View.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.View.AutoScroll = true;
this.View.AutoSize = true;
this.View.BackColor = System.Drawing.SystemColors.ActiveCaptionText;
this.View.Location = new System.Drawing.Point(4, 0);
this.View.Name = "View";
this.View.Size = new System.Drawing.Size(1045, 410);
this.View.TabIndex = 1;

随便写点属性就好了么 主要是Location和Size
回复
加载更多回复
相关推荐
发帖
.NET技术社区
创建于2007-09-28

5.8w+

社区成员

.NET技术交流专区
申请成为版主
帖子事件
创建了帖子
2010-07-01 03:04
社区公告
暂无公告