All,
Can you help? I am kinda new to C#, a long-time VB guy.
I have nearly identical code in another project, but this code (kinda copied-pasted) is not working.
The event "MyDataChanged" is always null when I try to call it. Cannot figure out why?
Thanks!
Dave
I'm trying to do something like this but it won't compile:Code:namespace OPC_Process_Driver { public partial class frmMain : Form { private OPC_Process.cls_OPC_Group m_OPC_Process; // dhs - added delegate for VB Event consumption public delegate void theDataChanged(object source, string strContext, string strTagName, string strTagValue); public event theDataChanged MyDataChanged; public void NotifyDataChanged(string strContext, string strTagName, string strTagValue) { if (MyDataChanged != null) { MyDataChanged(this, strContext, strTagName, strTagValue); // THIS IS ALWAYS NULL!!! } } public frmMain() { InitializeComponent(); m_OPC_Process = new cls_OPC_Group(); m_OPC_Process.DataChanged += new __cls_OPC_Group_DataChangedEventHandler(this.HandleDataChanged); } private void HandleDataChanged(ref string Context, ref string TagName, ref string TagValue) { // Handle the event this.NotifyDataChanged(Context, TagName, TagValue); } private void btn_TestDataChanged_Click(object sender, EventArgs e) { NotifyDataChanged("Context", "TagName", "TagValue"); } private void btn_InitOPC_Click(object sender, EventArgs e) { string server, context, refresh; server = "SWToolbox.TOPServer"; context = "Channel_1"; refresh = "100"; m_OPC_Process.Initialize_OPC(ref server, ref context, ref refresh); } private void btn_AddItem_Click(object sender, EventArgs e) { string context, tagname; context = "Channel_1"; tagname = "Device_1.HeartBeat"; m_OPC_Process.AddListener(ref context, ref tagname); } } }
Code:public frmMain() { InitializeComponent(); m_OPC_Process = new cls_OPC_Group(); m_OPC_Process.DataChanged += new __cls_OPC_Group_DataChangedEventHandler(this.HandleDataChanged); this.MyDataChanged += new System.EventHandler(MyDataChanged); }




Reply With Quote