.

.

Where did the 'Shapes' pane disappear in the 2010 version of the Microsoft Office Visio 14.0 Drawing Control ?

 

   It seems that in the latest version (2010) of the 'VisOcx.dll' control, the left hand side
instruments panel does not show up anymore.

       I looked into this and tried to get some feedback from our Visio developers. According to their reply: yes, it is expected behavior. Having the 'Shapes' pane show-up by default was disabled, primarily because of the feedback we were receiving from the customers: on most instances when this control was used, the developers were programmatically adding all the needed shapes to the drawing canvas. The good news is that this feature can be re-enabled by code.

.

How to enumerate all the available hidden panes

   To demonstrate how can we list all the available Visio panes, we need to start with a new Visual Studio Windows Forms project and then we have to insert a reference to the Visio Interop class. Please note that in order for you to be able to use the Visio Control, you need to have the main application installed .. there is no stand-alone (redistributable) version available for VisOcx.dll.  

http://msdn.microsoft.com/en-us/library/ff765109.aspx

About Using the Visio Drawing Control in Your Application
-------------------------------------------------------------------

To install the Visio Drawing Control, install Visio.  When you install Visio, you can choose various installation options, including the Minimal Install option. If you want to minimize the installation file size of Visio on your computer, you can choose Minimal Install, which  installs only the minimum required Visio components, including  the Visio drawing application and the Visio Drawing Control.  This

 

This code sniped will help you enumerate all the Visio Window components:

Dim wnd As Microsoft.Office.Interop.Visio.Window

For Each wnd InAxDrawingControl1.Window.Windows           
    Debug.WriteLine(wnd.Caption & " / " & wnd.ID)
Next

 

Output

==========================================================================
Shape(Data ................................./ 1658
Pan & Zoom ................................./ 1653
Size & Position ............................/ 1670
Shapes ...................................../ 1669
............................................/ 2263
............................................/ 1721
External(Data) ............................./ 2044
Basic Flowchart Shapes (Metric) ............/ 13503
Cross-Functional Flowchart Shapes (Metric) ./ 13505

 

As you can see, the pane we are interested in has this ID: 1669.

You can use the VBA-style Debug.Print statement in a Visual Studio project to write to the Output window, if you add a reference to: System.Diagnostics.

            

The full code listing:

'==============================================================
' * Please note that Microsoft provides programming
' * examples for illustration only, without
' * warranty either expressed or implied, including,
' * but not limited to, the implied warranties                       
' * of merchantability and/or fitness 
' * for a particular purpose. Any use by you of the code
' * provided in this blog is at your own risk.
'===============================================================

Imports Microsoft.Office.Interop.Visio
Imports System.Windows.Forms
 
Public Class Form1
 
   
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
       
Dim dlg As New OpenFileDialog
 
       
dlg.DefaultExt = "*.vss"
 
       
If dlg.ShowDialog = DialogResult.OK Then
   Me.AxDrawingControl1.Src = dlg.FileName
  'MsgBox(Me.AxDrawingControl1.Controls.Count)
 
   Dim wnd As Microsoft.Office.Interop.Visio.Window
  
   For Each wnd In AxDrawingControl1.Window.Windows
       Debug.WriteLine(wnd.Caption & " / " & wnd.ID)      
   Next
 
  'Make the Shapes window wisible using it's ID
 
   AxDrawingControl1.Window.Windows.ItemFromID(1669).Visible = True
   Me.AxDrawingControl1.Document.OpenStencilWindow()
End If
 
End Sub
 
End Class

For more information about working with the Microsoft Visio Drawing Control, please review this articles:

 > http://www.eggheadcafe.com/community/csharp/2/10295201/using-microsoft-office-visio-140-drawing-control-in-a-c-wpf-project.aspx (Using Microsoft Office Visio 14.0 Drawing Control in a C# WPF Project)
 > http://msdn.microsoft.com/en-us/magazine/cc164043.aspx (Host an Interactive Visio Drawing Surface in .NET Custom Clients)