| |
 | Online-Kurs: Grundlagen des 3D-Druck-Designs für Industrieingenieure , ein Kurs
|
Autor
|
Thema: VB.Net : Timer--> Form schließen einen anderen öffnen (15006 mal gelesen)
|
Feyza Mitglied
  
 Beiträge: 605 Registriert: 12.01.2004 AutoCAD Mechanical 2014 / Windows Win7 / HP-UX / Oracle 10 VB6 / Visual Studio:NET2005 / .NET 2010 - Vb.net / Windows Server 2012, ASP.net
|
erstellt am: 23. Feb. 2006 11:29 <-- editieren / zitieren --> Unities abgeben:         
Hallo Zusammen, ich möchte gerne eine Form starten( frmStart), nach 10 Sekunden soll, diese Form sich schließen und ein anderer Form frmACAD sich öffnen. Nur bei mir gehen beide gleichseitig auf und die Form frm Start schließt sich nicht. Was muß ich in meinem COde ändern, dass er das macht, was ich mir vorstelle : ) ?! VB.Net Code: Private Sub Start_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Run this procedure in an appropriate event. ' Set to 1 second. Timer1.Enabled = True Timer1.Interval = 10000 ' Enable timer. Dim Form2 As New frmStart Form2.Close() Timer1.Enabled = False Dim Form1 As New frmACAD Form1.Show() End Sub Danke für jede Unterstützung Schöne Grüße Feyza : ) ------------------ [Diese Nachricht wurde von Feyza am 23. Feb. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BloodyMess Mitglied Applicationingenieur
  
 Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 (SP2 & SP1) / Win XP pro (SP1) & Win 2000 pro (SP4) AutoCAD Map 2000i / WinNT (SP6)
|
erstellt am: 23. Feb. 2006 11:55 <-- editieren / zitieren --> Unities abgeben:          Nur für Feyza
Hi Feyza, schau Dir das Tick Event vom Timer an. Dies wird ausgelöst, wenn der Interval abgelaufen ist. Dort kannst dein Code platzieren. Musst halt den Timer1.enabled dann wieder auf false stellen, dass er nicht nochmal ausgelöst wird. Grüssle TP ------------------ "Soll es funktionieren oder darf es auch etwas von Siemens sein?" ... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Feyza Mitglied
  
 Beiträge: 605 Registriert: 12.01.2004 AutoCAD Mechanical 2014 / Windows Win7 / HP-UX / Oracle 10 VB6 / Visual Studio:NET2005 / .NET 2010 - Vb.net / Windows Server 2012, ASP.net
|
erstellt am: 23. Feb. 2006 12:05 <-- editieren / zitieren --> Unities abgeben:         
Hallöchen, danke für Deinen Eintrag. Ich habe den Timer jetzt so verwendet: Private Sub Start_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim Form3 As New frmACAD Form3.Visible = False ' Run this procedure in an appropriate event. ' Set to 1 second. Timer1.Enabled = True Timer1.Interval = 10000 End Sub Private Sub Timer1_Tick(ByVal Sender As Object, ByVal e As EventArgs) Handles Timer1.Tick ' Set the caption to the current time. Dim Form2 As New frmStart Form2.Close() Timer1.Enabled = False Dim Form1 As New frmACAD Form1.Visible = True End Sub Jetzt geht mir die zweite Form nach meinen 10 sekunden auf. Aber die erste Form schließt sich nicht. Mit Close sollte er sich schließen. Was muß man hier noch beachten? Schöne Grüße Feyza : ) ------------------  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BloodyMess Mitglied Applicationingenieur
  
 Beiträge: 604 Registriert: 06.06.2002 AutoCAD Map 3D 2005 (SP2 & SP1) / Win XP pro (SP1) & Win 2000 pro (SP4) AutoCAD Map 2000i / WinNT (SP6)
|
erstellt am: 23. Feb. 2006 12:49 <-- editieren / zitieren --> Unities abgeben:          Nur für Feyza
Hi Feyza, er schliesst schon das Formular. Nur in deinen Augten nicht das Richtige. Mit 'Dim Form2 As New frmStart' legst Du ein neues Objekt vom Typ frmStart an, welches Du dann schliesst. Es wurde dem Objekt nie mitgeteilt, dass es aber das Objekt Form3 sein soll! Entweder Du machst eine Übergabe an das Objekt, oder schreibst Dir eine Funktion/Klasse/Property - was auch immer - an die Du das Objekt(Form3) übergibst und im Tick Event legst Du das Objekt Form2 an und weisst diesem dann das Objekt(Form2) wieder zu. ... Möglichkeit über ein Property ...
Code: Public Property getForm() Get Return m_frm_parent End Get Set(ByVal Value) m_frm_parent = Value End Set End Property
... Man könnte es aber auch in einer globalen Variable Speichern, aber davon würde ich Dir abraten. Grüssle TP ------------------ "Soll es funktionieren oder darf es auch etwas von Siemens sein?" ... [Diese Nachricht wurde von BloodyMess am 23. Feb. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Feyza Mitglied
  
 Beiträge: 605 Registriert: 12.01.2004 AutoCAD Mechanical 2014 / Windows Win7 / HP-UX / Oracle 10 VB6 / Visual Studio:NET2005 / .NET 2010 - Vb.net / Windows Server 2012, ASP.net
|
erstellt am: 23. Feb. 2006 13:15 <-- editieren / zitieren --> Unities abgeben:         
Hallo TP, ich habe das jetzt so umgestzt: Private Sub Start_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' Run this procedure in an appropriate event. ' Set to 1 second. Timer1.Enabled = True Timer1.Interval = 3000 End Sub Private Sub Timer1_Tick(ByVal Sender As Object, ByVal e As EventArgs) Handles Timer1.Tick ' Set the caption to the current time. Dim Form1 As New frmACAD Form1.Visible = True Timer1.Enabled = False Visible = False End Sub und es funktioniert : ) Danke für Deine Unterstützung. Schöne Grüße Feyza : ) ------------------  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank_Schalla Ehrenmitglied CAD_SYSTEMBETREUER
    
 Beiträge: 1732 Registriert: 06.04.2002
|
erstellt am: 20. Mai. 2006 07:15 <-- editieren / zitieren --> Unities abgeben:          Nur für Feyza
Ich war noch nie ein freund der Timer Funktion. deshalb mal ein anderer Vorschlag find ich irgendwie .NETter Public Sub splash_Load Dim splash_text As String Dim bar_value As Integer Dim Thread As New Threading.Thread(AddressOf splash_Load) Dim Main_splash As New splash Main_splash.Show() bar_value = 0 splash_text = ("IV_ERP_TOOLS Loading") bar_value = bar_value + 10 Main_splash.lbl_splash.Text = splash_text Main_splash.XtraProgressBar1.BarValue = bar_value Main_splash.XtraProgressBar1.Refresh() Main_splash.lbl_splash.Refresh() Main_splash.Label1.Refresh() Thread.Sleep(1500) Main_splash.dispose End Sub ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |