Jag har problem med att avsluta mina program om man tar det här programmet som exempel Unload me bör nog bara användas i form_terminate. Problemet är att du anropar en kontroll. Formuläret ladas på så sätt om automatiskt. <info>Problem med att avsluta program
Private Sub Form_Load()
Form1.Visible = True
Label1.Caption = "start"
Call Ett
Call Två
End Sub
Private Sub Ett()
Label1.Caption = "Ett"
Unload Me
End Sub
Private Sub Två()
Label1.Caption = "Två"
End Sub
Jag vill att programmet ska avsluta sig i Sub Ett. Jag har läst att man ska avsluta med unload me och inte med end. Men programmet startar ju bara om och om igen hur gjör man för att avsluta det på rätt sätt
Sen en till fråga varför måste jagh skriva Form1.Visible = True för att programm fönstret ska visas Sv: Problem med att avsluta program
I detta fallet måste du använda END som ju, precis som du säger, är ett rätt brutalt sätt att avsluta koden.
Om jag inte minns fel använder man UnLoad Me för att friställa alla objekt man har använt, som man inte lyckats friställa i koden, men, eftersom din kod fortsätter i Form_Load kommer exekveringen att fortsätta.
Jag förstår inte varför du vill göra detta, men det kanske är ett utdrag ur en längre kod ?
Ett alternativ är ju att ha ett "END" efter UnLoad me, så blir nog alla glada :-)
/MartinSv: Problem med att avsluta program
Sv: Problem med att avsluta program
Note The End statement stops code execution abruptly, without invoking the Unload, QueryUnload, or Terminate event, or any other Visual Basic code.
Code you have placed in the Unload, QueryUnload, and Terminate events of forms and class modules is not executed.
Objects created from class modules are destroyed, files opened using the Open statement are closed, and memory used by your program is freed.
Object references held by other programs are invalidated.
The End statement provides a way to force your program to halt.
For normal termination of a Visual Basic program, you should unload all forms.
Your program closes as soon as there are no other programs holding references to objects created from your public class modules and no code executing.
</info>
De som använder END ful-programmerar. Kan du leva med det är det ditt problem och de som använder ditt program.Sv: Problem med att avsluta program
Option Explicit
Const ErrorAborted As Long = vbObjectError + 1
Private Sub Form_Load()
On Error GoTo Form_Load_Err
Form1.Visible = True
Label1.Caption = "start"
Call Ett
Call Två
Form_Load_Exit:
Exit Sub
Form_Load_Err:
Select Case Err.Number
Case ErrorAborted
Unload Me
Case Else
MsgBox Err.Description, vbCritical
End Select
End Sub
Private Sub Ett()
Label1.Caption = "Ett"
Err.Raise ErrorAborted, "Ett", "We should not continue"
End Sub
Private Sub Två()
Label1.Caption = "Två"
End Sub