DotNetFactory interface functions (6) - Create GUI Form

Categories: DotNetClassesSource code

Parent page: Service Functions – DotNetFactory (QTP, VBScript)

Creating .NET objects from VBScript/QTP

You can create a basic Form and assign required properties within one line by calling the function below. The function has one mandatory parameter (which though is initialized by default if empty) and a set of optional parameters provided in the Dictionary object.

Currently supported optional parameters:

Form Width and Height.

Form Coordinates - Left, Top.

  • p.locksize - Specify whether the Form is resizable by the user.
  • p.lockview - Specify whether the Form is maximizable/minimizable.
  • p.startpos - Specify start postion (CenterScreen or Manual).

Note 1. If start position is not set to Manual window location won’t be affected by your custom Left/Top settings. It will be set in accordance with the current default window position provided by the Operating System.

Note 2. You may code as many optional parameters as required. Just follow the established syntax and keep in mind that parameter index for Dictionary must be unique - otherwise it will overwrite the previous parameter.

References

For the complete .NET Form Class reference please visit:

http://msdn.microsoft.com/en-us/library/system.windows.forms.form(VS.80).aspx

Used resources

Service Functions – String (QTP, VBScript)

Implementing optional and default parameters

Create Form

 Public Function CreateForm(ByVal sTitle, ByVal objParameter)
 Dim intWidth, intHeight, intLeft, intTop
 Dim boolLockSize, boolLockView, sStartPosition
 Dim FormSize
 Dim objForm, objStartPos
 'Verify parameters
 If TypeName (objParameter) <> "Dictionary" Then
 Set objParameter = CreateObject("Scripting.Dictionary")
 End If
 If sTitle = "" Then sTitle = "Form"
 intWidth = InitLong(objParameter.Item("p.width"), 500)
 intHeight = InitLong(objParameter.Item("p.height"), 300)
 intLeft = InitLong(objParameter.Item("p.left"), 100)
 intTop = InitLong(objParameter.Item("p.top"), 100)
 boolLockSize = InitBool(objParameter.Item("p.locksize"), TRUE)
 boolLockView = InitBool(objParameter.Item("p.lockview"), FALSE)
 sStartPosition = UCase(objParameter.Item("p.startpos"))
 Set objForm = DotNetFactory.CreateInstance("System.Windows.Forms.Form", "System.Windows.Forms")
 Set objStartPos = DotNetFactory.CreateInstance("System.Windows.Forms.FormStartPosition","System.Windows.Forms")
 objForm.Text = sTitle
 Select Case sStartPosition
 Case "CENTERSCREEN"
 objForm.StartPosition = objStartPos.CenterScreen
 Case "MANUAL"
 objForm.StartPosition = objStartPos.Manual
 Case Else
 objForm.StartPosition = objStartPos.WindowsDefaultLocation
 End Select
 objForm.Width = intWidth
 objForm.Height = intHeight
 objForm.Left = intLeft
 objForm.Top = intTop
 If boolLockSize Then
 Set FormSize = objForm.Size
 Set objForm.MinimumSize = FormSize
 Set objForm.MaximumSize = FormSize
 End If
 If boolLockView Then
 objForm.MaximizeBox = FALSE
 objForm.MinimizeBox = FALSE
 End If
 Set objStartPos = Nothing
 Set CreateForm = objForm
 End Function

Example

Set objForm = CreateForm("Test Setup", AssociateParameters("p.startpos = CenterScreen, p.width = 400, p.height = 300, p.locksize = Yes, p.lockview = Yes"))

  • Leave a Reply

    * Required
    ** Your Email is never shared

Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported
This work by the author is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported.