Activate Sheets Example (C#)

This example shows how to activate each Sheet in a drawing.

//--------------------------------------------------------------
//Preconditions:
// 1. Create a C# Windows console project.
// 2. Copy and paste this example into the C# IDE.
// 3. Add a reference to:
//    install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll.
// 4. Add references to System and System.Windows.Forms.
// 5. Start DraftSight and open a document with multiple Sheets.
// 6. Start debugging the project.
//
//Postconditions: 
// 1. Pops up a message box when a Sheet is activated. 
// 2. Click OK to close each message box.
//----------------------------------------------------------------
using DraftSight.Interop.dsAutomation;
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
static class Module1
{
 
    public static void Main()
    {
        DraftSight.Interop.dsAutomation.Application dsApp;
        Document dsDoc = default(Document);

        //Connect to DraftSight
        dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application");
 
        //Abort any command currently running in 
        //DraftSight to avoid nested commands
        dsApp.AbortRunningCommand(); 
 
        //Get active document
        dsDoc = dsApp.GetActiveDocument();
        if (dsDoc != null)
        {
            //Activate each Sheet, one by one
            SwitchSheets(dsDoc);
        }
        else
        {
            MessageBox.Show("There are no open documents in DraftSight.");
        }
    }
    public static void SwitchSheets(Document dsDoc)
    {
        Sheet dsSheet = default(Sheet);
        object[] dsVarSheets = null;
        int index = 0;
        string sheetName = null;
        //Get all Sheets
        dsVarSheets = (object[])dsDoc.GetSheets2();
 
        if (dsVarSheets != null)
        {
            for (index = dsVarSheets.GetLowerBound(0); index <= dsVarSheets.GetUpperBound(0); index++)
            {
                dsSheet = (Sheet)dsVarSheets[index];
                //Get Sheet name
                sheetName = dsSheet.Name; 
                    //Activate Sheet
                    dsSheet.Activate();
                    //Verify if the Sheet was activated
                    if (dsSheet.IsActive())
                    {
                        MessageBox.Show(sheetName + " was activated.");
                    }
            }
        }
 
    }
 
}