Events Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Referencia del programador > Application API > Overview > Programming Languages > C# >


The code snippet below (from the AutomateAuthenticDesktop example) lists the code for two event handlers. The AutomateAuthenticDesktop example (see the file Form1.cs) is located in the C# folder of the API Examples folder:


Windows 7, Windows 8, Windows 10



You can compile and run the project from within Visual Studio 2008 or Visual Studio 2010.



      delegate void addListBoxItem_delegate(string sText);

      // Called from the UI thread

      private void addListBoxItem(string sText)




      // Wrapper method to call UI control methods from a worker thread

      void syncWithUIthread(Control ctrl, addListBoxItem_delegate methodToInvoke, String sText)


          // Control.Invoke: Executes on the UI thread, but calling thread waits for completion before continuing.

          // Control.BeginInvoke: Executes on the UI thread, and calling thread doesn't wait for completion.

          if (ctrl.InvokeRequired)

               ctrl.BeginInvoke(methodToInvoke, new Object[] { sText });



  // Event handler for OnDocumentOpened event

      private void handleOnDocumentOpened(XMLSpyLib.Document i_ipDocument)


          String sText = "";


          if (i_ipDocument.Name.Length > 0)

               sText = "Document " + i_ipDocument.Name + " was opened!";


               sText = "An empty document was created.";


          // Synchronize the calling thread with the UI thread because

          // COM events are triggered from a working thread

          addListBoxItem_delegate methodToInvoke = new addListBoxItem_delegate(addListBoxItem);

          // Call syncWithUIthread with the following arguments:

          // 1 - listBoxMessages - list box control to display messages from COM events

          // 2 - methodToInvoke  - a C# delegate which points to the method which will be called from the UI thread

          // 3 - sText           - the text to be displayed in the list box

           syncWithUIthread(listBoxMessages, methodToInvoke, sText);




      private void checkBoxEventOnOff_CheckedChanged(object sender, EventArgs e)


          if (AuthenticDesktop != null)


              if (checkBoxEventOnOff.Checked)

                   AuthenticDesktop.OnDocumentOpened += new XMLSpyLib._IApplicationEvents_OnDocumentOpenedEventHandler(handleOnDocumentOpened);


                   AuthenticDesktop.OnDocumentOpened -= new XMLSpyLib._IApplicationEvents_OnDocumentOpenedEventHandler(handleOnDocumentOpened);




© 2019 Altova GmbH