Exposing VB InputBox Dialog to C# code
This is basically a VB InputBox Dialog wrapper dll for C#.
Introduction - VS2005
This solves the issue with trying to access the Microsoft.VisualBasic.Interaction.InputBox(); code. C# is not able to use the optional variables that VB uses so we will have to expose them as overloads. This code fully exposes the VB InputBox code.
Background
C# does not contain an InputBox. Maybe Microsoft will in the 2010 code (They did add support in VS2010). Or better yet, maybe Microsoft will make it to where someone can add a .vb file to a C# project and allow it to compile.
Using the code
Add InputBoxClassLibrary.dll to your C# References.
Add Using InputBoxClassLibrary; to the C# code.
VB Code to Expose Microsoft.VisualBasic.Interaction.InputBox():
Public Class InputBox
Public Overloads Shared Function Show(ByVal message As String) As String
Return Microsoft.VisualBasic.Interaction.InputBox(message)
End Function
Public Overloads Shared Function Show(ByVal message As String, _
ByVal title As String) As String
Return Microsoft.VisualBasic.Interaction.InputBox(message, title)
End Function
Public Overloads Shared Function Show(ByVal message As String, _
ByVal title As String, _
ByVal defaultValue As String) As String
Return Microsoft.VisualBasic.Interaction.InputBox(message, title, defaultValue)
End Function
Public Overloads Shared Function Show(ByVal message As String, _
ByVal title As String, _
ByVal defaultValue As String, _
ByVal xPos As Integer) As String
Return Microsoft.VisualBasic.Interaction.InputBox(message, title, defaultValue, xPos)
End Function
Public Overloads Shared Function Show(ByVal message As String, _
ByVal title As String, _
ByVal defaultValue As String, _
ByVal Null As Nullable, _
ByVal yPos As Integer) As String
Return Microsoft.VisualBasic.Interaction.InputBox(message, title, defaultValue, , yPos)
End Function
Public Overloads Shared Function Show(ByVal message As String, _
ByVal title As String, _
ByVal defaultValue As String, _
ByVal xPos As Integer, _
ByVal yPos As Integer) As String
Return Microsoft.VisualBasic.Interaction.InputBox(message, title, defaultValue, xPos, yPos)
End Function
End Class
C# Code used to expose the InputBox Class code:
string Returned;
//This will show the InputBox center screen with a default title and no default val
Returned = InputBox.Show("Message1");
MessageBox.Show(Returned);
//This will show the InputBox center screen with a message and title and no default val
Returned = InputBox.Show("Message2", "title - no default val");
MessageBox.Show(Returned);
//This will show the InputBox center screen with a message, title, and default val
Returned = InputBox.Show("Message3", "title - no x and y", "defaultValue");
MessageBox.Show(Returned);
//This will show the InputBox 50 pix away from the side of the screen.
Returned = InputBox.Show("Message4", "title - x50", "defaultValue2", 50);
MessageBox.Show(Returned);
//This will show the InputBox 50 pix away from the top side of the screen.
Returned = InputBox.Show("Message5", "title - y50", "defaultValue2", null, 50);
MessageBox.Show(Returned);
//this will show the InputBox 50 pix away from the top and side of the screen.
Returned = InputBox.Show("Message6", "title - x50 and y50", "defaultValue2", 50, 50);
MessageBox.Show(Returned);
Points of Interest
Make sure that "Overloads Shared" is used in the VB code when exposing Optional variables in VB code.
History
01/15/09 - Document Created.
01/16/09 - Document Updated.
08/12/10 - No longer needed in VS2010.