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

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


...全文
280 32 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
加载更多回复(12)

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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