C# 如何让控件销毁时执行某些代码

点击主页面A上的按钮,跳出控件B。我希望控件B退出时,执行某些代码XXXX来对主页面进行某些改变。我这些代码XXX应该写在哪个地方?3ks另外如果我希望控件B退出时能返回... 点击主页面A上的 按钮,跳出控件B。我希望控件B退出时,执行某些代码XXXX来对主页面进行某些改变。我这些代码XXX应该写在哪个地方?3ks另外如果我希望控件B退出时能返回一些值,这个怎么实现呢?谢谢大家 展开
 我来答
匿名用户
2013-05-20
展开全部
--------------------------------------------------------------------------提问人的追问 2009-07-01 11:40 B是控件,不是窗体。
:A窗体产生B控件,在B控件上设置一些参数,然后B控件销毁。
我希望B控件销毁后刷新A上面的一些lable之类的东西。
我现在使用的是这种方式:
productEdit.Disposed +=new EventHandler(productEdit_Disposed);

private void productEdit_Disposed()
{
//在这里写刷新代码
//然后B控件中的设置的值不知道怎么返回A界面来……
} --------------------------------------------------------------------------- 你可以这样写试试看: 1,先在productEdit里添加下面的代码: public delegate void MyHandler(object obj);
public MyHandler ParamHandler; private void productEdit_Disposed()
{
//这里这样写!!!!!!!!!!! if (ParamHandler != null)
{
ParamHandler(value);//value为productEdit任何属性!,填入你想传入得任何想传的东东!
}
} 2 ,然后,在A窗口:----------------------------------this.Controls.Add(productEdit);
productEdit.BringToFront();
MessageBox.Show("XXXX");//比如我的代码是这个----------------------------------------- 给productEdit的ParamHandler属性赋一个值: productEdit.ParamHandler = delegate(object obj)
{
//obj为productEdit里的传过来的东东! //举个例子:如果obj为string类型,label1为A窗口类的控件; //那么你可以这样写:this.label1.Text = obj.ToString();就ok! }; 如果还有不明白的地方再问我.
匿名用户
推荐于2017-12-16
展开全部
只能用代理做了~

///窗体一
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{

Form2 f2 = new Form2();

//把form2的setText事件交给form1的GetText(string text)方法处理。
f2.Test += new Form2.SetText(GetText);
f2.ShowDialog();
}

public void GetText(string text)
{
string value = text;
this.button1.Text = value;
}

}

/**************************************************************/

//窗体二
public partial class Form2 : Form
{
//第一种方法就是代理。
public delegate void SetText(string text);
public event SetText Test;

public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{

}
private void button1_Click(object sender, EventArgs e)
{
// 第一种方法
if (Test != null)
{
Test(textBox1.Text);
}
this.Close();

}
}
你可以建立出来试试就知道了~~~~
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式