Browse DevX
Sign up for e-mail newsletters from DevX

Tip of the Day
Language: Visual Basic
Expertise: Beginner
Jan 3, 2001



Building the Right Environment to Support AI, Machine Learning and Deep Learning

Handling Dialogs With One Line of Code

Handle dialogs with one line of code by encapsulating the show method within the form in a public function. This makes the form/dialog reusable and simpler to implement and update. Example:
Form: frmLogin 
        Option Explicit 
        Public Enum LoginReturns 
            LoginFailed = 0 
            LoginSuccess = 1 
        End Enum 
        Private mReturn As Long 
        Private mDefaultUserName As String 
        Public Function ShowLogin(Optional DefaultUserName As String, 
Optional OwnerForm) As LoginReturns 
            mDefaultUserName = DefaultUserName 
            Me.Show vbModal, OwnerForm 
            ShowLogin = mReturn 
        End Function 
        Private Sub cmdLogin_Click() 
            If txtUserName = "user" And txtPassword = "test" Then 
                mReturn = LoginSuccess 
                SaveSetting App.Title, "Settings", "LastUser", 
                Unload Me 
                MsgBox "Invalid password/user!", vbInformation 
            End If 
        End Sub 
        Private Sub Form_Load() 
            txtUserName = mDefaultUserName 
        End Sub 
        Private Sub cmdCancel_Click() 
            Unload Me 
        End Sub 
Module: mdlMain [Startup: Sub Main] 
        Option Explicit 
        Public Sub Main() 
        Dim frmForm As frmLogin 
            Set frmForm = New frmLogin 
            Select Case frmForm.ShowLogin(GetSetting
(App.Title, "Settings", "LastUser")) 
            Case LoginSuccess 
                MsgBox "Login: Success!", vbInformation 
            Case LoginFailed 
                MsgBox "Login: Failed!", vbInformation 
            Case Else 
                MsgBox "Login: Unknown!", vbInformation 
            End Select 
        End Sub 
Andreas Hillqvist
Thanks for your registration, follow us on our social networks to keep up-to-date