Add ActiveX Tabs to Model View (C#)
This example shows how to add two ActiveX tabs to a model view.
//----------------------------------------------------------
// Preconditions:
// 1. In the IDE:
// a. Reference Microsoft Calendar Control's ActiveX
// control file (click Project > Add Reference >
// Browse tab).
// b. Browse to:
// c:\Program Files\Microsoft Office\Office12\MSCAL.OCX
// and click OK.
// c. Reference Microsoft.VisualBasic namespace (click Project >
// Add Reference > Microsoft.VisualBasic).
// 2. Specified part document exists.
//
// Postconditions:
// 1. Two new tabs are added to the model view.
// 2. New tabs have Microsoft Calendar Controls,
// Calendar 1 and Calendar 2.
// 3. Model view is active.
// 4. To verify the ActiveX controls on the new tabs,
// interactively click each Calendar tab.
//
// NOTE: Because the part document is used elsewhere,
// do not save any changes when closing it.
//------------------------------------------------------------
using
SolidWorks.Interop.sldworks;
using
SolidWorks.Interop.swconst;
using System;
using MSACAL;
using Microsoft.VisualBasic;
namespace
AddControlModelViewManagerCSharp.csproj
{
partial
class
SolidWorksMacro
{
public
void Main()
{
const
string calTabName1 =
"Calendar 1";
const
string calTabName2 =
"Calendar 2";
ModelDoc2 swModel = default(ModelDoc2);
ModelViewManager swModViewMgr = default(ModelViewManager);
MSACAL.Calendar calCtrl1 = default(MSACAL.Calendar);
MSACAL.Calendar calCtrl2 = default(MSACAL.Calendar);
string fileName
= null;
int errors = 0;
int warnings =
0;
bool status =
false;
fileName = "c:\\Program
Files\\SolidWorks Corp\\SolidWorks (3)\\samples\\tutorial\\fillets\\knob.sldprt";
swModel = swApp.OpenDoc6(fileName, (int)swDocumentTypes_e.swDocPART,
(int)swOpenDocOptions_e.swOpenDocOptions_Silent,
"",
ref errors,
ref warnings);
swModViewMgr = swModel.ModelViewManager;
// Add the tabs
calCtrl1 = (MSACAL.Calendar)swModViewMgr.AddControl(calTabName1,
"MSCAL.Calendar",
"");
calCtrl2 = (MSACAL.Calendar)swModViewMgr.AddControl(calTabName2,
"MSCAL.Calendar",
"");
// Make each Calendar's tab as different
color
calCtrl1.BackColor = (uint)Information.RGB(255,
0, 0); //red
calCtrl2.BackColor = (uint)Information.RGB(0,
0, 0); //black
status = swModViewMgr.ActivateControlTab(calTabName1);
status = swModViewMgr.IsControlTabActive(calTabName1);
status = swModViewMgr.IsModelTabActive();
// Switch back to model view
status = swModViewMgr.ActivateModelTab();
}
///
<summary>
///
The SldWorks swApp variable is pre-assigned for you.
///
</summary>
public
SldWorks swApp;
}
}