我有System.Windows.Forms.Form
这样:
public class MainForm : Form
{
int _processProgress;
public int ProcessProgress
{
get { return _processProgress; }
set
{
_processProgress = value;
if (ProcessProgressChanged != null)
ProcessProgressChanged(value);
}
}
public delegate void ProcessProgressChangedEventHandler(int progressPercentage);
public event ProcessProgressChangedEventHandler ProcessProgressChanged;
}
它有UserControl
这样:
public class MainFormControl : UserControl
{
public MainFormControl()
{
((MainForm)this.ParentForm).ProcessProgressChanged += (progPerc) =>
{
this.TextBox1.Text = "asd";
// Do something
};
}
}
是否会从 MainFormControl
<{strong> MainForm.ProcessProgressChanged
的构造函数取消订阅匿名方法 MainFormControl.Dispose()
被称为时(或从MainForm中删除MainFormControl时)的事件
我的代码在C#,框架4中,在VS2010 Pro中构建,项目在WinForms中。
请帮忙。提前谢谢。
答案 0 :(得分:1)
没有。但如果控件在表格上并且表格正在处理,那真的无关紧要......
你需要注意的是当表单/控件连接到长时间运行的后端服务(单例等)时你必须注意那里因为事件可以/即使在控件/表单时也会触发处置。如果处理程序做了一些假设UI仍然存在的东西(即没有处理掉) - 你遇到了麻烦......