C# 关于委托 要搞死我了
--------------------编程问答-------------------- tabControl(true);=>
if (tabControl != null) tabControl(true);
防止设计器或者编写的代码没有挂接这个事件。 --------------------编程问答-------------------- 版主你好,这个判断我之前也加过,但是加上之后就不会走tabControl(true)这个里面了!一直都是为NULL的 --------------------编程问答-------------------- 你调用的时候看看ucDocDiagnoseInput1是否就是this,如果不是,自己看看错哪里了 --------------------编程问答--------------------
关键代码, --------------------编程问答-------------------- 给 tabControl 赋值的代码应该先执行,不然就是 null --------------------编程问答--------------------
具体是指的哪个地方的赋值啊,是frmOutPatientOrder 中的,还是ucDocDiagnoseInput中的 --------------------编程问答-------------------- tabControl为null 是因为没有对委托进行New操作吗? --------------------编程问答--------------------
我看了 是this,因为在frmOutPatientOrder中我已经声明过ucDocDiagnoseInput1 = new ucDocDiagnoseInput --------------------编程问答-------------------- --------------------编程问答-------------------- this.ucDocDiagnoseInput1.tabControl += new Neusoft.HISFC.Components.HealthRecord.CaseFirstPage.ucDocDiagnoseI这句可能有问题! --------------------编程问答-------------------- private void f1_mushan(bool mushan)
{
tabControl1.SelectedIndex = 0;
}
--------------------编程问答--------------------
我最近刚做了个类似的。两个窗体之间的通讯,主窗体是列表显示,另外一个窗体做添加,添加完成后,刷新主窗体列表。 关键代码如下:
public delegate void ReftaskEveHand();
/// <summary>
/// 刷新通知类
/// </summary>
public class RefreshDev
{
#region 事件
private static event ReftaskEveHand _onRefresh;
/// <summary>
///刷新任务列表事件
/// </summary>
public event ReftaskEveHand OnRefresh
{
add
{
_onRefresh += value;
}
remove
{
_onRefresh -= value;
}
}
#endregion
主窗体加载事件代码
RefreshDev refDev = new RefreshDev();
refDev.OnRefresh += new ReftaskEveHand(GetFullTaskList);
--------------------编程问答-------------------- http://download.csdn.net/detail/hellboy419/5623069 --------------------编程问答-------------------- 看不懂哦/疑问 --------------------编程问答-------------------- 检查你的this.ucDocDiagnoseInput1.tabControl += xxx这句是否被执行,断点打在这个位置,如果从未触发断点,就是没有被执行过,自然不会触发相关事件。
补充:.NET技术 , C#