110,534
社区成员
发帖
与我相关
我的任务
分享
frmUpdateUK 窗体代码
public frmUpdateUK()
{
MsgForm mf = MsgForm.Instance;
//mf.AddUKInsertHandler(new MsgForm.UKInsertHandler(this.On_UKInsert));
mf.OnUKInsert += new MsgForm.UKInsertHandler(this.On_UKInsert);
mf.OnUKRemove += new MsgForm.UKRemoveHandler(this.On_UKRemove);
InitializeComponent();
}
private void On_UKInsert()
{
gbMain.Enabled = true;
}
private void On_UKRemove()
{
gbMain.Enabled = false;
}
设备类代码(静态类)
public delegate void UKInsertHandler
();
public delegate void UKRemoveHandler
();
public event UKInsertHandler OnUKInsert = null;
public event UKRemoveHandler OnUKRemove = null;
if (OnUKInsert != null)//OnUKInsert是设备插入事件
{
List<UKInsertHandler> errorList = new List<UKInsertHandler>();
//安全的调用事件
foreach (UKInsertHandler dlt in OnUKInsert.GetInvocationList())
{
try
{
dlg.Invoke();
}
catch
{
errorList.Add(dlt);
}
}
//移除已经无效的事件
foreach(UKInsertHandler del in errorList)
{
OnUKInsert -= del;
}
OnUKInsert();
}
if (OnUKInsert != null)//OnUKInsert是设备插入事件
{
//object ojb1 = OnUKInsert.Target;
foreach (Delegate dlt in OnUKInsert.GetInvocationList())
{
object obj = OnUKInsert.Target;
//下面两步如何做到?
if(关闭)
OnUKInsert -= new UKInsertHandler(对象的方法);
}
OnUKInsert();
}