Okay I was being stupid. C# as I should know does not have a WithEvents operator (unlike VB) you have to wire up the exceptions in the code. So the question now is the code below the best option (in the OnConnection method)?
m_theApp.DisplayActivate += this.DisplayActivate;
Yes, this is the right approach in C#.
One special case you need to pay attention to is with the PI SDK events - because the PI SDK is originally a COM set libraries and you use it .NET by means of interop assemblies. This means you need to go through "event dispatch interfaces" and method delegates. Please do not hesitate to post your questions on the "PI SDK Development" discussion forum if you need assistance with any of that.