1. Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

Visual Basic HELP

Discussion in 'Programming & Webmastering' started by dcf-joe, Mar 5, 2008.

  1. dcf-joe

    dcf-joe

    Joined:
    Feb 11, 2008
    Messages:
    381 (0.16/day)
    Thanks Received:
    22
    Location:
    Nebraska, USA
    I use VB 2008 Express Edition, and I cannot get my multiple form application to work correctly. I am trying to get frmNext to show up after frmInput is done. So, in frmInput's button click event, I type in strName = TextBox1.Text, frmNext.Show(), and Unload frmInput. Unload does not work in vb 2008 anymore I guess, because it gave me an error. So, I typed in Me.Close(), which closes the application altogether. So, I decided to go into frmNext's form load event and type in Me.Text = strName and frmInput.Close(), which causes the entire program to close. I need help getting frmNext to show up and frmInput to close down.
     
  2. ShadowFold

    ShadowFold New Member

    Joined:
    Dec 23, 2007
    Messages:
    16,921 (6.78/day)
    Thanks Received:
    1,644
    Location:
    Omaha, NE
    Ah im not that great yet but could you post the whole code? I could probly help ive been using it for a few years now.
     
  3. dcf-joe

    dcf-joe

    Joined:
    Feb 11, 2008
    Messages:
    381 (0.16/day)
    Thanks Received:
    22
    Location:
    Nebraska, USA
    Option Explicit On
    Module Module1
    Public strName As String
    End Module

    Option Explicit On
    Public Class frmInput

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    strName = TextBox1.Text
    frmNext.Show()
    Me.Close()

    End Sub
    End Class

    Option Explicit On
    Public Class frmNext

    Private Sub frmNext_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.Text = strName
    End Sub
    End Class
     
  4. Kreij

    Kreij Senior Monkey Moderator Staff Member

    Joined:
    Feb 6, 2007
    Messages:
    13,881 (4.93/day)
    Thanks Received:
    5,616
    Location:
    Cheeseland (Wisconsin, USA)
    Create a module with a Sub "Main"
    Code:
    Imports System.Windows.Forms
    
    Module Module1
      Sub Main()
        Dim frmInput as new FormInput
        frmInput.Show()
        Application.Run() // This starts the App without a start-up main form
      End Sub
    End Module
    
    In the Input Form (which will load as the default form)
    Code:
    Private closeApp as Boolean = True
    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) handles Button1.Click
      closeApp = False;
      Dim nextFrm As New NextForm
      nextFrm.Show()
      Me.Close()
    End Sub
    
    // Just in case you want to kill the App from this form
    Private Sub InputForm_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
       If closeApp Then
          Application.Exit()
       End If
    End Sub
    
    In Next Form, use something like this to close the Application
    Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Application.Exit()
    End Sub
    
    This is not the most robust way of doing this, but it should work for you.
     
  5. Oliver_FF

    Oliver_FF New Member

    Joined:
    Oct 15, 2006
    Messages:
    546 (0.19/day)
    Thanks Received:
    65
    Whenever I wanted to do something like that back in the day, i'd simply change the visibility of the form

    frm.setVisible(true); to display it
    frm.setVisible(false); to hide it
     
  6. Kreij

    Kreij Senior Monkey Moderator Staff Member

    Joined:
    Feb 6, 2007
    Messages:
    13,881 (4.93/day)
    Thanks Received:
    5,616
    Location:
    Cheeseland (Wisconsin, USA)
    That works okay, but then you have unneeded components and their associated resources hanging around eating up stack and heap space (RAM). It is better to dispose of the unneeded resource so that the garbage collector can clean up after you.
     
  7. Kreij

    Kreij Senior Monkey Moderator Staff Member

    Joined:
    Feb 6, 2007
    Messages:
    13,881 (4.93/day)
    Thanks Received:
    5,616
    Location:
    Cheeseland (Wisconsin, USA)
    After some quick perusing ...

    You may just be able to go into your projects properties page, and under the Application tab set the "Shutdown mode" to "After last form closes" instead of the default "When main form closes".
     

Currently Active Users Viewing This Thread: 1 (0 members and 1 guest)

Share This Page