C#中..在A窗体里打开了B窗体.A不关..关闭B窗体(时)后 要实现A窗体的重新加载 改怎么弄呢?

具体的问题是。。MyQQ项目里在资料设置窗体里我点击修改头像窗体选择新头像后点确定。。修改头像窗体关闭此时资料设置里的头像没有更新... 具体的问题是。。MyQQ项目里 在资料设置窗体里 我点击 修改头像窗体 选择新头像后点确定。。修改头像窗体关闭 此时资料设置里的头像没有更新 展开
 我来答
kas68310
2011-12-11 · TA获得超过3637个赞
知道大有可为答主
回答量:1468
采纳率:33%
帮助的人:1178万
展开全部
如果你在A里用的show()方法调用B,那么B里就必须有一个A的变量,并在实例化B时将A作为参数传出:
B:
FormA objA;
public FormB(FormA _objA){objA=_objA;}
A:
FormB objb=new FormB(this);objb.show();
然后在A中你得有一个可以设置头像的方法(不能是private方法),在B关闭这前,由B调用来更新A的头像.
-----
如果你用的showDailog(),那么可以在B关闭后调用B的属性或方法(前提是,属性或方法必须不是私有方法)获取头像,再更新.
更多追问追答
追问
我用的show()调用B的。  然后用的UserHelper()这个公共类 里面的FaceID记录B中更新了的faceID  但是不知道 怎么在B中 关闭B的时候 A中自动加载好
追答
在A中建一个方法,只用来更新头像.
public void reLoadFace(){...这里只需要加载头像}
或者
public void reLoadFace(string FaceID){...这里只需要加载头像}

然后按上面说的,把A做为参数传递给B.
在B的close事件中,调用A的reLoadFace(),或者reLoadFace(FaceID),
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
崔敬采
2011-12-11 · 超过23用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:56.4万
展开全部
你第一次打开页面的时候肯定也有LoadFace方法吧,肯定也调用了,第二次修改窗体的页面关了以后,你再调用这个方法一次就行了,把选中头像的参数传过去啊。还有这两个页面应该都有一个imagelist的控件,来存储图片的,貌似是这个控件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
202261256487e6a
2011-12-11 · TA获得超过481个赞
知道小有建树答主
回答量:795
采纳率:0%
帮助的人:689万
展开全部
B窗体关闭时调用A窗体的重新加载方法
追问
就是不知道怎么在B中调用A的加载方法啊。。
追答
给你个简单的例子
class A:Form
{
//重新加载
public void ReLoad()
{

}
//关闭B窗体时
public void BFormClosing(object sender,FormClosingEventArgs e)
{
//最好这样处理
Form f=sender as Form;
if(f!=null)
{
if(f.Owner is A)
{
((A)f.Owner).ReLoad();
}
}
//下面这种也可以
//this.ReLoad();
}
//显示B窗体
public void OpenB()
{
Form b=new Form();
b.Owner=this;
b.FormClosing+=BFormClosing;
b.Show();
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式