Variablers räckvidd och livslängd | |
![]() | ![]() |
![]() | |
Beroende på var man deklarerar en variabel, får den olika räckvidd och livslängd. Deklareras den i en Private Sub för till exempel en Button, kan variabeln endast användas när man trycker på just den knappen. Deklareras variabeln ovanför all kod, under texten "Windows Designer generated code", kan den användas i alla Private Sub i hela formuläret. Variabeln räcker däremot inte över till ett annat formulär i projektet. Om en variabel skall kunna nås i alla formulär måste man deklarera den i en modul. Gör en form med en textruta och en knapp. Ge Button1 koden: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Om vi nu kör programmet växer inte variabeln tal utan det står 2 hur många gånger vi än klickar på knappen. Variabeln tal lever alltså inte längre än just när vi klickar på knappen. Därefter nollställs variabeln och nästa gång vi klickar på knappen räknar programmet från noll igen. Om vi vill att variabeln skall behålla sitt värde efter knapptryckningen, måste vi deklarera variabeln ovanför Private Sub. Windows Designer generated kod Nu adderar programmet 2 till det gamla värdet på tal varje gång vi klickar på knappen, därför att tal behåller värdet det tilldelades vid klickningen. Har vi en knapp till, kan värdet på variabeln användas även i koden för den knappen. ModulerLägg till en modul genom att i menyn klicka på Project-Add Windows Form. I fönstret som visas väljer vi Module. Klicka på Open och en modul syns i Solution Explorer. Lägg på samma sätt till ett nytt formulär. Klicka på Project-Add, välj Add Windows Form och välj sedan Windows Form. Nu har vi två formulär och en modul i projektet. I en modul kan man skriva kod till projektet men det går också att spara modulen och öppna den i ett annat projekt. Det är ju bra att slippa skriva samma kod mer än en gång. Men nu skall vi alltså använda modulen till att skapa en variabel som får en räckvidd över flera formulär. Klicka på modulen och visa redigeringsfönstret. Där står: Module Module1 Mellan dessa rader kan variablerna deklareras. Det är enkelt, skriv bara Public i stället för Dim: Public tal As Integer Lägg nu ut en knapp och en TextBox i Form2. Observera att i Form2 får knappen namnet Button1, alltså samma namn som i Form1 men det blir inga namnkonflikter när de ligger i olika formulär. Vi måste kunna göra Form2 synlig också, vilket beskrivits i en tidigare lektion. I Form1 skriver vi koden: Dim NyForm As New Form2() Observera att vi med raden NyForm.TextBox1.Text = tal kan styra var värdet i variabel skall hamna i det andra formuläret. I knappen i Form2 skriver vi: tal += 2 När vi kör programmet och klickar på knappen ökar talet i TextBoxen med två. Samtidigt öppnas Form2 och det står 2 även i den TextBoxen. Klickar vi på knappen i Form2 ökas värdet på variabeln. Vi har alltså en global variabel som sträcker sig över alla formulär. | |
![]() | ![]() |
![]() | |
SupportData.Net |