Others
This section provides different options to upgrade other controls that are common in VB6 applications and that don’t fit in any of the other sections.
As with the previous options, all these components have two alternatives when upgrading them to .NET, one is to upgrade using COM Interop and the second one is to use .NET components.

1. Accusoft

1.1. To Accusoft .NET Version

General Description:
This solution converts the Accusoft VB6 library to the Accusoft.NET component.
Class
Maps to
AccusoftISISXpress7.ISISXpress
Accusoft.ISISXpressSdk.IsisXpress
AccusoftISISXpress7.ISX_SaveFileType
Accusoft.ISISXpressSdk.FileTypeInfo
AccusoftISISXpress7.ISX_ScanSetting
Accusoft.ISISXpressSdk.ScanSettingInfo
AccusoftISISXpress7.ISX_SetupOptions
Accusoft.ISISXpressSdk.SetupOptions
AccusoftImagXpress13.ImagXpress
Accusoft.ImagXpressSdk.ImageXView
AccusoftImagXpress13.enumAutoSize
Accusoft.ImagXpressSdk.AutoResizeType
AccusoftImagXpress13.enumZoomFit
Accusoft.ImagXpressSdk.ZoomToFitType
Original VB6 code:
Begin AccusoftImagXpress13Ctl.ImagXpress ImagXpress1
...
End
Begin AccusoftISISXpress7Ctl.ISISXpress ISISXpress1
...
End
Private Sub Command2_Click()
Me.ISISXpress1.CreateDib = True
Me.ISISXpress1.CreateFiles = True
Dim driver As String
Dim scanner As String
Dim r As String
r = Me.ISISXpress1.Root
Me.ISISXpress1.Cancel
Me.ISISXpress1.Cancel True
Me.ISISXpress1.Cancel False
Me.ISISXpress1.CancelImmediate
End Sub
Private Sub Form_Load()
Me.ImagXpress1.FileName = "Tulips.jpg"
Me.ImagXpress1.ZoomFactor = 1
Me.ImagXpress1.ZoomToFit ZOOMFIT_BEST
Me.ImagXpress1.DrawTextString 100, 100, "This is a sample", 0
Dim n As Integer
n = ImagXpress1.PageNbr
MsgBox n
n = ImagXpress1.Pages
MsgBox n
ImagXpress1.AutoSize = ISIZE_BestFit
MsgBox ImagXpress1.FileName
ImagXpress1.SaveFile
End Sub
Private Sub ISISXpress1_FeederEmpty(ByVal PageNumber As Long, StopScan As Boolean)
MsgBox PageNumber
End Sub
C# code:
public Accusoft.ImagXpressSdk.ImageXView ImagXpress1;
public Accusoft.ImagXpressSdk.ImagXpress ImagXpress1_Component;
public Accusoft.ISISXpressSdk.IsisXpress ISISXpress1;
...
this.ImagXpress1 = new Accusoft.ImagXpressSdk.ImageXView();
this.ImagXpress1_Component = new Accusoft.ImagXpressSdk.ImagXpress();
this.ISISXpress1 = new Accusoft.ISISXpressSdk.IsisXpress();
...
private void Command2_Click(Object eventSender, EventArgs eventArgs)
{
this.ISISXpress1.Output.CreateDib = true;
this.ISISXpress1.Output.CreateFiles = true;
string driver = "";
string scanner = "";
string r = this.ISISXpress1.Output.Root;
this.ISISXpress1.Scanner.Cancel();
this.ISISXpress1.Scanner.Cancel(true);
this.ISISXpress1.Scanner.Cancel(false);
this.ISISXpress1.Scanner.Cancel(true);
}
//UPGRADE_WARNING: (2080) Form_Load event was upgraded to Form_Load method and has a new behavior. private void Form_Load()
{
this.ImagXpress1.Image = Accusoft.ImagXpressSdk.ImageX.FromFile(ImagXpress1_Component, "Tulips.jpg");
this.ImagXpress1.ZoomFactor = 1;
this.ImagXpress1.ZoomToFit(Accusoft.ImagXpressSdk.ZoomToFitType.FitBest);
Graphics graphics = this.ImagXpress1.Image.GetGraphics();
graphics.DrawString("This is a sample", new Font(SystemFonts.DefaultFont.Name, SystemFonts.DefaultFont.Size), new SolidBrush(Color.Black), 100, 100);
this.ImagXpress1.Image.ReleaseGraphics(true);
int n = ImagXpress1.Image.Page;
MessageBox.Show(n.ToString(), AssemblyHelper.GetTitle(System.Reflection.Assembly.GetExecutingAssembly()));
n = ImagXpress1.Image.PageCount;
MessageBox.Show(n.ToString(), AssemblyHelper.GetTitle(System.Reflection.Assembly.GetExecutingAssembly()));
ImagXpress1.AutoResize = Accusoft.ImagXpressSdk.AutoResizeType.BestFit;
MessageBox.Show(ImagXpress1.Image.Filename, AssemblyHelper.GetTitle(System.Reflection.Assembly.GetExecutingAssembly()));
//UPGRADE_ISSUE: (2064) AccusoftImagXpress13.ImagXpress method ImagXpress1.SaveFile was not upgraded.
ImagXpress1.SaveFile();
}
private void ISISXpress1_FeederEmpty(object eventSender, Accusoft.ISISXpressSdk.FeederEmptyEventArgs eventArgs)
{
int PageNumber = eventArgs.PageNumber;
bool StopScan = eventArgs.StopScan;
MessageBox.Show(PageNumber.ToString(), AssemblyHelper.GetTitle(System.Reflection.Assembly.GetExecutingAssembly()));
}
VB.NET code:
Public WithEvents ImagXpress1 As Accusoft.ImagXpressSdk.ImageXView
Public WithEvents ImagXpress1_Component As Accusoft.ImagXpressSdk.ImagXpress
Public WithEvents ISISXpress1 As Accusoft.ISISXpressSdk.IsisXpress
...
Me.ImagXpress1 = New Accusoft.ImagXpressSdk.ImageXView()
Me.ImagXpress1_Component = New Accusoft.ImagXpressSdk.ImagXpress()
Me.ISISXpress1 = New Accusoft.ISISXpressSdk.IsisXpress()
...
Private Sub Command2_Click(ByVal eventSender As Object, ByVal eventArgs As EventArgs) Handles Command2.Click
Me.ISISXpress1.Output.CreateDib = True
Me.ISISXpress1.Output.CreateFiles = True
Dim driver As String = "", scanner As String = ""
Dim r As String = Me.ISISXpress1.Output.Root
Me.ISISXpress1.Scanner.Cancel()
Me.ISISXpress1.Scanner.Cancel(True)
Me.ISISXpress1.Scanner.Cancel(False)
Me.ISISXpress1.Scanner.Cancel(True)
End Sub
'UPGRADE_WARNING: (2080) Form_Load event was upgraded to Form_Load method and has a new behavior.'
Private Sub Form_Load()
Me.ImagXpress1.Image = Accusoft.ImagXpressSdk.ImageX.FromFile(ImagXpress1_Component, "Tulips.jpg")
Me.ImagXpress1.ZoomFactor = 1
Me.ImagXpress1.ZoomToFit(Accusoft.ImagXpressSdk.ZoomToFitType.FitBest)
Dim graphics As Graphics = Me.ImagXpress1.Image.GetGraphics()
graphics.DrawString("This is a sample", New Font(SystemFonts.DefaultFont.Name, SystemFonts.DefaultFont.Size), New SolidBrush(Color.Black), 100, 100)
Me.ImagXpress1.Image.ReleaseGraphics(True)
Dim n As Integer = ImagXpress1.Image.Page
MessageBox.Show(CStr(n), My.Application.Info.Title)
n = ImagXpress1.Image.PageCount
MessageBox.Show(CStr(n), My.Application.Info.Title)
ImagXpress1.AutoResize = Accusoft.ImagXpressSdk.AutoResizeType.BestFit
MessageBox.Show(ImagXpress1.Image.Filename, My.Application.Info.Title)
'UPGRADE_ISSUE: (2064) AccusoftImagXpress13.ImagXpress method ImagXpress1.SaveFile was not upgraded.'
ImagXpress1.SaveFile()
End Sub
Private Sub ISISXpress1_FeederEmpty(ByVal eventSender As object, ByVal eventArgs As Accusoft.ISISXpressSdk.FeederEmptyEventArgs) Handles ISISXpress1.FeederEmpty
Dim PageNumber As Integer = eventArgs.PageNumber
Dim StopScan As Boolean = eventArgs.StopScan
MessageBox.Show(CStr(PageNumber), My.Application.Info.Title)
End Sub

1.2. To COM Interop

This feature will take the legacy COM control and create an interoperability code wrapper to make it visible from the managed code. This means the control's functionality will remain the same since it will use the same binary, but the resulting application will depend on the legacy control.
Original VB6 code:
Begin AccusoftImagXpress13Ctl.ImagXpress ImagXpress1
...
End
Begin AccusoftISISXpress7Ctl.ISISXpress ISISXpress1
...
End
Private Sub Command2_Click()
Me.ISISXpress1.CreateDib = True
Me.ISISXpress1.CreateFiles = True
Dim driver As String
Dim scanner As String
Dim r As String
r = Me.ISISXpress1.Root
Me.ISISXpress1.Cancel
Me.ISISXpress1.Cancel True
Me.ISISXpress1.Cancel False
Me.ISISXpress1.CancelImmediate
End Sub
Private Sub Form_Load()
Me.ImagXpress1.FileName = "Tulips.jpg"
Me.ImagXpress1.ZoomFactor = 1
Me.ImagXpress1.ZoomToFit ZOOMFIT_BEST
Me.ImagXpress1.DrawTextString 100, 100, "This is a sample", 0
Dim n As Integer
n = ImagXpress1.PageNbr
MsgBox n
n = ImagXpress1.Pages
MsgBox n
ImagXpress1.AutoSize = ISIZE_BestFit
MsgBox ImagXpress1.FileName
ImagXpress1.SaveFile
End Sub
Private Sub ISISXpress1_FeederEmpty(ByVal PageNumber As Long, StopScan As Boolean)
MsgBox PageNumber
End Sub
C# code:
public AxAccusoftImagXpress13.AxImagXpress ImagXpress1;
public AxAccusoftISISXpress7.AxISISXpress ISISXpress1;
...
this.ImagXpress1 = new AxAccusoftImagXpress13.AxImagXpress();
this.ISISXpress1 = new AxAccusoftISISXpress7.AxISISXpress();
...
private void Command2_Click(Object eventSender, EventArgs eventArgs)
{
this.ISISXpress1.CreateDib = true;
this.ISISXpress1.CreateFiles = true;
string driver = "";
string scanner = "";
string r = this.ISISXpress1.Root;
//UPGRADE_ISSUE: (2064) AccusoftISISXpress7.ISISXpress method ISISXpress1.Cancel was not upgraded.
this.ISISXpress1.Cancel(true);
//UPGRADE_ISSUE: (2064) AccusoftISISXpress7.ISISXpress method ISISXpress1.Cancel was not upgraded.
this.ISISXpress1.Cancel(true);
//UPGRADE_ISSUE: (2064) AccusoftISISXpress7.ISISXpress method ISISXpress1.Cancel was not upgraded.
this.ISISXpress1.Cancel(false);
this.ISISXpress1.CancelImmediate();
}
//UPGRADE_WARNING: (2080) Form_Load event was upgraded to Form_Load method and has a new behavior. private void Form_Load()
{
this.ImagXpress1.FileName = "Tulips.jpg";
this.ImagXpress1.ZoomFactor = 1;
this.ImagXpress1.ZoomToFit(AccusoftImagXpress13.enumZoomFit.ZOOMFIT_BEST);
this.ImagXpress1.DrawTextString(100, 100, "This is a sample", Convert.ToUInt32(0));
int n = ImagXpress1.PageNbr;
MessageBox.Show(n.ToString(), AssemblyHelper.GetTitle(System.Reflection.Assembly.GetExecutingAssembly()));
n = ImagXpress1.Pages;
MessageBox.Show(n.ToString(), AssemblyHelper.GetTitle(System.Reflection.Assembly.GetExecutingAssembly()));
ImagXpress1.CtlAutoSize = AccusoftImagXpress13.enumAutoSize.ISIZE_BestFit;
MessageBox.Show(ImagXpress1.FileName, AssemblyHelper.GetTitle(System.Reflection.Assembly.GetExecutingAssembly()));
ImagXpress1.SaveFile();
}
private void ISISXpress1_FeederEmpty(Object eventSender, AxAccusoftISISXpress7._IISISXpressEvents_FeederEmptyEvent eventArgs)
{
MessageBox.Show(eventArgs.pageNumber.ToString(), AssemblyHelper.GetTitle(System.Reflection.Assembly.GetExecutingAssembly()));
}
VB.NET code:
Public WithEvents ImagXpress1 As AxAccusoftImagXpress13.AxImagXpress
Public WithEvents ISISXpress1 As AxAccusoftISISXpress7.AxISISXpress
...
Me.ImagXpress1 = New AxAccusoftImagXpress13.AxImagXpress()
Me.ISISXpress1 = New AxAccusoftISISXpress7.AxISISXpress()
...
Private Sub Command2_Click(ByVal eventSender As Object, ByVal eventArgs As EventArgs) Handles Command2.Click
Me.ISISXpress1.CreateDib = True
Me.ISISXpress1.CreateFiles = True
Dim driver As String = "", scanner As String = ""
Dim r As String = Me.ISISXpress1.Root
'UPGRADE_ISSUE: (2064) AccusoftISISXpress7.ISISXpress method ISISXpress1.Cancel was not upgraded.'
Me.ISISXpress1.Cancel()
'UPGRADE_ISSUE: (2064) AccusoftISISXpress7.ISISXpress method ISISXpress1.Cancel was not upgraded.'
Me.ISISXpress1.Cancel(True)
'UPGRADE_ISSUE: (2064) AccusoftISISXpress7.ISISXpress method ISISXpress1.Cancel was not upgraded.'
Me.ISISXpress1.Cancel(False)
Me.ISISXpress1.CancelImmediate()
End Sub
'UPGRADE_WARNING: (2080) Form_Load event was upgraded to Form_Load method and has a new behavior. Private Sub Form_Load()'
Me.ImagXpress1.FileName = "Tulips.jpg"
Me.ImagXpress1.ZoomFactor = 1
Me.ImagXpress1.ZoomToFit(AccusoftImagXpress13.enumZoomFit.ZOOMFIT_BEST)
Me.ImagXpress1.DrawTextString(100, 100, "This is a sample", Convert.ToUInt32(0))
Dim n As Integer = ImagXpress1.PageNbr
MessageBox.Show(CStr(n), My.Application.Info.Title)
n = ImagXpress1.Pages
MessageBox.Show(CStr(n), My.Application.Info.Title)
ImagXpress1.CtlAutoSize = AccusoftImagXpress13.enumAutoSize.ISIZE_BestFit
MessageBox.Show(ImagXpress1.FileName, My.Application.Info.Title)
ImagXpress1.SaveFile()
End Sub
Private Sub ISISXpress1_FeederEmpty(ByVal eventSender As Object, ByVal eventArgs As AxAccusoftISISXpress7._IISISXpressEvents_FeederEmptyEvent) Handles ISISXpress1.FeederEmpty
MessageBox.Show(CStr(eventArgs.pageNumber), My.Application.Info.Title)
End Sub

2. ActiveBarLibrary

2.1. To DevExpress.XtraBars

Convert ActiveBar2Library.ActiveBar2 classes to DevExpress.XtraBars.BarManager.
By using this option the converted application will not have any reference to the COM Component.
Class
Maps to
ActiveBar2Library.ActiveBar2.BackColor
DevExpress.XtraBars.BarManager.GetBackColor
ActiveBar2Library.ActiveBar2.ForeColor
DevExpress.XtraBars.BarManager.GetForeColor
ActiveBar2Library.ActiveBar2.Font
DevExpress.XtraBars.BarManager.GetFont
ActiveBar2Library.ActiveBar2.DisplayKeysInToolTip
DevExpress.XtraBars.BarManager.ShowShorcutInScreenTips
ActiveBar2Library.ActiveBar2.DisplayToolTips
DevExpress.XtraBars.BarManager.ToolTipController
ActiveBar2Library.ActiveBar2.Enabled
DevExpress.XtraBars.BarManager.GetEnabled
ActiveBar2Library.ActiveBar2.Bands
DevExpress.XtraBars.BarManager.Bars
Original VB6 code:
Private Sub Form_Load()
...
X1 = Me.ActiveBar1.ForeColor
X2 = Me.ActiveBar1.Font
Me.ActiveBar1.DisplayKeysInToolTip = False
Me.ActiveBar1.DisplayToolTips = True
End Sub
C# code:
private void Form_Load()
{
Color X1 = this.ActiveBarHelper1.GetForeColor(this.ActiveBar1);
string X2 = this.ActiveBarHelper1.GetFont(this.ActiveBar1).Name;
this.ActiveBar1.ShowShortcutInScreenTips = false;
this.ActiveBar1.ToolTipController.Active = true;
}
VB.NET code:
Private Sub Form_Load()
Dim X1 As Color = Me.ActiveBarHelper1.GetForeColor(Me.ActiveBar1)
Dim X2 As String = Me.ActiveBarHelper1.GetFont(Me.ActiveBar1).Name
Me.ActiveBar1.ShowShortcutInScreenTips = False
Me.ActiveBar1.ToolTipController.Active = True
End Sub

2.2. To COM Interop

This feature will take the legacy COM control and create an interoperability code wrapper to make it visible from the managed code. This means the control's functionality will remain the same since it will use the same binary, but the resulting application will depend on the legacy control.
Original VB6 code:
Private Sub Form_Load()
...
X1 = Me.ActiveBar1.ForeColor
X2 = Me.ActiveBar1.Font
Me.ActiveBar1.DisplayKeysInToolTip = False
Me.ActiveBar1.DisplayToolTips = True
End Sub
C# code:
private void Form_Load()
{
Color X1 = this.ActiveBarHelper1.GetForeColor(this.ActiveBar1);
string X2 = this.ActiveBarHelper1.GetFont(this.ActiveBar1).Name;
this.ActiveBar1.ShowShortcutInScreenTips = false;
this.ActiveBar1.ToolTipController.Active = true;
}
VB.NET code:
Private Sub Form_Load()
Dim X1 As Color = Me.ActiveBarHelper1.GetForeColor(Me.ActiveBar1)
Dim X2 As String = Me.ActiveBarHelper1.GetFont(Me.ActiveBar1).Name
Me.ActiveBar1.ShowShortcutInScreenTips = False
Me.ActiveBar1.ToolTipController.Active = True
End Sub

3. Component One Elastic

3.1. To System.Windows.Forms.Panel

This option will port the legacy COM control into the resulting application as a System.Windows.Forms.Panel control.
By using this option the converted application will not have any reference to the COM Component.
Original VB6 code:
Begin VB.Form Form1
...
Begin C1SizerLibCtl.C1Elastic C1Elastic1
...
End
End
Private Sub Form_Load()
Dim ctl As C1Elastic
Set ctl = C1Elastic1
ctl.Align = asFill
ctl.Width = 200
ctl.Top = 3000
ctl.Enabled = False
End Sub
C# code:
partial class Form1
{
...
public System.Windows.Forms.Panel C1Elastic1;
...
private void InitializeComponent()
{
...
this.C1Elastic1 = new System.Windows.Forms.Panel();
...
}
}
private void Form_Load()
{
Panel ctl = C1Elastic1;
ctl.Dock = DockStyle.Fill;
ctl.Width = 200;
ctl.Top = 3000;
ctl.Enabled = false;
}
VB.NET code:
Partial Class Form1
...
Public WithEvents C1Elastic1 As System.Windows.Forms.Panel
...
Private Sub InitializeComponent()
...
Me.C1Elastic1 = New System.Windows.Forms.Panel()
...
Private Sub Form_Load()
Dim ctl As Panel = C1Elastic1
ctl.Dock = DockStyle.Fill
ctl.Width = 200
ctl.Top = 3000
ctl.Enabled = False
End Sub

3.2. To ComponentOne controls

This option will port the legacy COM control into the resulting application as a System.Windows.Forms.Panel control, along with a C1SizerLight control attached to the resulting form which handles the proportional resizing of all the controls in the form, including the mapped panel.
By using this option the converted application will not have any reference to the COM Component.
Original VB6 code:
Begin VB.Form Form1
...
Begin C1SizerLibCtl.C1Elastic C1Elastic1
...
End
End
Private Sub Form_Load()
Dim ctl As C1Elastic
Set ctl = C1Elastic1
ctl.Align = asFill
ctl.Width = 200
ctl.Top = 3000
ctl.Enabled = False
End Sub
C# code:
partial class Form1
{
...
public System.Windows.Forms.Panel C1Elastic1;
C1.Win.C1Sizer.C1SizerLight c1sizerlight = null;
...
private void InitializeComponent()
{
...
this.C1Elastic1 = new System.Windows.Forms.Panel();
this.c1sizerlight = new C1.Win.C1Sizer.C1SizerLight(this.components);
...
}
}
private void Form_Load()
{
Panel ctl = C1Elastic1;
ctl.Dock = DockStyle.Fill;
ctl.Width = 200;
ctl.Top = 3000;
ctl.Enabled = false;
}
VB.NET code:
Partial Class Form1
...
Public WithEvents C1Elastic1 As System.Windows.Forms.Panel
Dim c1sizerlight As C1.Win.C1Sizer.C1SizerLight
...
Private Sub InitializeComponent()
...
Me.C1Elastic1 = New System.Windows.Forms.Panel()
Me.c1sizerlight = New C1.Win.C1Sizer.C1SizerLight(Me.components)
...
Private Sub Form_Load()
Dim ctl As Panel = C1Elastic1
ctl.Dock = DockStyle.Fill
ctl.Width = 200
ctl.Top = 3000
ctl.Enabled = False
End Sub

3.3. To COM Interop

This feature will take the legacy COM control and create an interoperability code wrapper to make it visible from the managed code. This means the control's functionality will remain the same since it will use the same binary, but the resulting application will depend on the legacy control.
Original VB6 code:
Private Sub Form_Load()
...
X1 = Me.ActiveBar1.ForeColor
X2 = Me.ActiveBar1.Font
Me.ActiveBar1.DisplayKeysInToolTip = False
Me.ActiveBar1.DisplayToolTips = True
End Sub
C# code:
partial class Form1
{
...
public System.Windows.Forms.Panel C1Elastic1;
C1.Win.C1Sizer.C1SizerLight c1sizerlight = null;
...
private void InitializeComponent()
{
...
this.C1Elastic1 = new System.Windows.Forms.Panel();
this.c1sizerlight = new C1.Win.C1Sizer.C1SizerLight(this.components);
...
}
}
private void Form_Load()
{
Panel ctl = C1Elastic1;
ctl.Dock = DockStyle.Fill;
ctl.Width = 200;
ctl.Top = 3000;
ctl.Enabled = false;
}
VB.NET code:
Partial Class Form1
...
Public WithEvents C1Elastic1 As System.Windows.Forms.Panel
Dim c1sizerlight As C1.Win.C1Sizer.C1SizerLight
...
Private Sub InitializeComponent()
...
Me.C1Elastic1 = New System.Windows.Forms.Panel()
Me.c1sizerlight = New C1.Win.C1Sizer.C1SizerLight(Me.components)
...
Private Sub Form_Load()
Dim ctl As Panel = C1Elastic1
ctl.Dock = DockStyle.Fill
ctl.Width = 200
ctl.Top = 3000
ctl.Enabled = False
End Sub

4. Component One Tab

4.1. To System.Windows.Forms.TabControl

This option will port the legacy COM control into the resulting application as a System.Windows.Forms.TabControl control.
By using this option the converted application will not have any reference to the COM Component.
Original VB6 code:
Private Sub Form_Load()
Dim ctl As C1Tab
Dim boolValue As Boolean
Dim numTab As Integer
Set ctl = C1Tab1
ctl.Align = asFill
ctl.Width = 200
ctl.Top = 3000
ctl.Enabled = False
ctl.CurrTab = 4
ctl.AddTab "Hola2", Me.C1Tab1.NumTabs
numTab = ctl.NumTabs
boolValue = ctl.TabVisible(1)
boolValue = ctl.TabEnabled(1)
ctl.AttachPageToTab Me.Command2, Me.C1Tab1.NumTabs - 1
ctl.Move 1000, 1000, 1000, 1000
End Sub
C# code:
private void Form_Load()
{
TabControl ctl = C1Tab1;
ctl.setAlign(DockStyle.Fill);
ctl.Width = 200;
ctl.Top = 3000;
ctl.Enabled = false;
ctl.SelectedIndex = 4;
ctl.TabPages.Insert(this.C1Tab1.TabCount, "Hola2");
int numTab = ctl.TabCount;
bool boolValue = ctl.TabPages[1].Visible;
boolValue = ctl.TabPages[1].Enabled;
ctl.TabPages[this.C1Tab1.TabCount - 1].Controls.Add(this.Command2);
this.Command2.Dock = DockStyle.Fill;
ctl.SetBounds(67, 67, 67, 67);
}
VB.NET code:
Private Sub Form_Load()
Dim ctl As TabControl = C1Tab1
ctl.setAlign(DockStyle.Fill)
ctl.Width = 200
ctl.Top = 3000
ctl.Enabled = False
ctl.SelectedIndex = 4
ctl.TabPages.Insert(Me.C1Tab1.TabCount, "Hola2")
Dim numTab As Integer = ctl.TabCount
Dim boolValue As Boolean = ctl.TabPages(1).Visible
boolValue = ctl.TabPages(1).Enabled
ctl.TabPages(Me.C1Tab1.TabCount - 1).Controls.Add(Me.Command2)
Me.Command2.Dock = DockStyle.Fill
ctl.SetBounds(67, 67, 67, 67)
End Sub

4.2. To COM Interop

This feature will take the legacy COM control and create an interoperability code wrapper to make it visible from the managed code. This means the control's functionality will remain the same since it will use the same binary, but the resulting application will depend on the legacy control.
Original VB6 code:
Private Sub Form_Load()
Dim ctl As C1Tab
Dim boolValue As Boolean
Dim numTab As Integer
Set ctl = C1Tab1
ctl.Align = asFill
ctl.Width = 200
ctl.Top = 3000
ctl.Enabled = False
ctl.CurrTab = 4
ctl.AddTab "Hola2", Me.C1Tab1.NumTabs
numTab = ctl.NumTabs
boolValue = ctl.TabVisible(1)
boolValue = ctl.TabEnabled(1)
ctl.AttachPageToTab Me.Command2, Me.C1Tab1.NumTabs - 1
ctl.Move 1000, 1000, 1000, 1000
End Sub
C# code:
private void Form_Load()
{
AxC1SizerLib.AxC1Tab ctl = C1Tab1;
ctl.Align = DockStyle.Fill;
ctl.Width = 200;
ctl.Top = 3000;
ctl.Enabled = false;
ctl.CurrTab = 4;
ctl.AddTab("Hola2", this.C1Tab1.NumTabs, null);
int numTab = ctl.NumTabs;
bool boolValue = ctl.get_TabVisible(1);
boolValue = ctl.get_TabEnabled(1);
ctl.AttachPageToTab(this.Command2, this.C1Tab1.NumTabs - 1);
ctl.Move(1000, 1000, 1000, 1000);
}
VB.NET code:
Private Sub Form_Load()
Dim ctl As AxC1SizerLib.AxC1Tab = C1Tab1
ctl.Align = DockStyle.Fill
ctl.Width = 200
ctl.Top = 3000
ctl.Enabled = False
ctl.CurrTab = 4
ctl.AddTab("Hola2", Me.C1Tab1.NumTabs)
Dim numTab As Integer = ctl.NumTabs
Dim boolValue As Boolean = ctl.TabVisible(1)
boolValue = ctl.TabEnabled(1)
ctl.AttachPageToTab(Me.Command2, Me.C1Tab1.NumTabs - 1)
ctl.Move(1000, 1000, 1000, 1000)
End Sub

5. COMSVCSLib

5.1. To System.EnterpriseServices

Map COMSVCSLib classes and members to their .NET equivalents in System.EnterpriseServices
Class
Maps to
ObjectContext
System.EnterpriseServices.ContextUtil
SharedPropertyGroupManager
System.EnterpriseServices.SharedPropertyGroupManager
SecurityProperty
System.EnterpriseServices.SecurityCallContext
SharedProperty
System.EnterpriseServices.SharedProperty
SharedPropertyGroup
System.EnterpriseServices.SharedPropertyGroup
Original VB6 code:
Implements ObjectControl
Private Sub ObjectControl_Activate()
End Sub
Private Function ObjectControl_CanBePooled() As Boolean
ObjectControl_CanBePooled = True
End Function
Private Sub ObjectControl_Deactivate()
End Sub
C# code:
public class clsLogon: System.EnterpriseServices.ServicedComponent
{
protected override void Activate()
{
}
protected override bool CanBePooled()
{
return true;
}
protected override void Deactivate()
{
}
}
VB.NET code:
Public Class clsLogon Inherits System.EnterpriseServices.ServicedComponent
Private Sub ObjectControl_Activate() Implements COMSVCSLib.ObjectControl.Activate
End Sub
Private Function ObjectControl_CanBePooled() As Boolean Implements COMSVCSLib.ObjectControl.CanBePooled
Return True
End Function
Private Sub ObjectControl_Deactivate() Implements COMSVCSLib.ObjectControl.Deactivate
End Sub

5.2. To COM Interop

This feature will take the legacy COM control and create an interoperability code wrapper to make it visible from the managed code. This means the control's functionality will remain the same since it will use the same binary, but the resulting application will depend on the legacy control.
Original VB6 code:
Implements ObjectControl
Private Sub ObjectControl_Activate()
End Sub
Private Function ObjectControl_CanBePooled() As Boolean
ObjectControl_CanBePooled = True
End Function
Private Sub ObjectControl_Deactivate()
End Sub
C# code:
public class clsLogon: COMSVCSLib.ObjectControl
{
public void Activate()
{
}
public bool CanBePooled()
{
return true;
}
public void Deactivate()
{
}
}
VB.NET code:
Public Class clsLogon Implements COMSVCSLib.ObjectControl
Private Sub ObjectControl_Activate() Implements COMSVCSLib.ObjectControl.Activate
End Sub
Private Function ObjectControl_CanBePooled() As Boolean Implements COMSVCSLib.ObjectControl.CanBePooled
Return True
End Function
Private Sub ObjectControl_Deactivate() Implements COMSVCSLib.ObjectControl.Deactivate
End Sub

6. CRAXDRT_CRVIEWERLibCtl

6.1. To CrystalReports

By using this option the converted application will not have any reference to the COM Component.
Map CRAXDRT and CRVIEWERLibCtl classes and enums to CrystalReports equivalents.
Class
Maps to
CRAXDRT.Report
CrystalDecisions.CrystalReports.Engine.ReportDocument
CRAXDRT.IFormulaFieldDefinitions
CrystalDecisions.CrystalReports.Engine.FormulaFieldDefinition
CRAXDRT.Report.FormulaFields
CrystalDecisions.CrystalReports.Engine.ReportDocument.DateDefinition.FormulaFields
CRAXDRT.Report.DiscardSavedData
CrystalDecisions.CrystalReports.Engine.ReportDocument.Refresh
CRAXDRT.Report.PrinterDuplex
CrystalDecisions.CrystalReports.Engine.ReportDocument.PrintOptions.PrinterDuplex
CRAXDRT.Report.PaperOrientation
CrystalDecisions.CrystalReports.Engine.ReportDocument.PrintOptions.PaperOrientation
CRAXDRT.Report.ReportTitle
CrystalDecisions.CrystalReports.Engine.ReportDocument.SummaryInfo.ReportTitle
CRAXDRT.Report.Sections
CrystalDecisions.CrystalReports.Engine.ReportDocument.ReportDefinition.Sections
CRAXDRT.FormulaFields
CrystalDecisions.CrystalReports.Engine.FormulaFieldDefinition
CRAXDRT.Section
CrystalDecisions.CrystalReports.Engine.Section
CRAXDRT.ReportObjects
CrystalDecisions.CrystalReports.Engine.ReportObjects
CRAXDRT.SubreportObject
CrystalDecisions.CrystalReports.Engine.SubreportObject
CRVIEWERLib.CRViewer
CrystalDecisions.Windows.Forms.CrystalReportViewer
Original VB6 code:
Private Sub Form_Load()
Dim objReport As CRAXDRT.Report
objReport = objApplication.OpenReport(App.Path & "Report.rpt", 1)
objReport.DiscardSavedData
End Sub
C# code:
private void Form_Load()
{
CrystalDecisions.