Habilite JavaScript para visualizar esta página.

Altova StyleVision 2020 Enterprise Edition

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

 

Windows 7, Windows 8, Windows 10

C:\Users\<usuario>\Documentos\
Altova\StyleVision2020\StyleVision

 

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)

       {

           listBoxMessages.Items.Add(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 OnDocumentClosed event

      private void handleOnDocumentClosed(StyleVisionLib.Document i_ipDocument)

       {

          String sText = "";

 

          if (i_ipDocument.Name.Length > 0)

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

 

          // 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 updateListBox()

       {

          // Iterate through all open documents

           listBoxMessages.Items.Clear();

 

 

          for (int i = 1; i <= StyleVision.Documents.Count; i++)

           {

               StyleVisionLib.Document doc = StyleVision.Documents[i];

 

              if (doc != null)

               {

                  if (checkBoxEventOnOff.Checked)

                       doc.OnDocumentClosed += new StyleVisionLib._IDocumentEvents_OnDocumentClosedEventHandler(handleOnDocumentClosed);

                  else

                       doc.OnDocumentClosed -= new StyleVisionLib._IDocumentEvents_OnDocumentClosedEventHandler(handleOnDocumentClosed);

 

                   listBoxMessages.Items.Add(doc.Name);

                   StyleVisionLib.SchemaSources sources = doc.SchemaSources;

 

                  for (int j = 1; j <= sources.Count; j++)

                   {

                       StyleVisionLib.SchemaSource source = sources[j];

 

                      if (source != null)

                       {

                           listBoxMessages.Items.Add("\tSchema      file name : " + source.SchemaFileName + "\n");

                           listBoxMessages.Items.Add("\tWorking XML file name : " + source.WorkingXMLFileName + "\n");

                           listBoxMessages.Items.Add("\tIs main schema source : " + source.IsMainSchemaSource + "\tType name : " + source.TypeName + "\n");

                       }

                   }

               }

           }

       }

 

© 2019 Altova GmbH