Gå til innhold

Skrive en variabel i en text-box eller lignende.


Gjest Slettet-aNZFa3

Anbefalte innlegg

Gjest Slettet-aNZFa3

Dette er koden min:

 

Dim Money As Integer

Dim CompName As Char

 

Money = 10000

CompName = "Sarco Gaming"

 

 

Hvordan får jeg dem til å dukke opp en en text-box når de ikke er det samme som nå. Og åssen får jeg lagd en dialog slik at brukeren skal taste inn CompName slik at den endrer seg og slik at programmet husker det?

 

EDIT: jeg bruker Visual Studio 2005 Express

Endret av Slettet-aNZFa3
Lenke til kommentar
Videoannonse
Annonse

Definer to TEXT bokser på vinduet. Kall den ene for txtMoney og den andre for txtComName

Dermed kan du gjøre slik:

me.txtMoney.text = Money
me.txtComName.text = CompName

Permanent lagring er derimot et helt annet kapittel. Der har du drøssevis av måter å gjøre det på. Jeg har en masse innlegg rundt omkring her som omhandler lagring i tekst filer. Se på dem så finner du enkle og greie metoder for lagring.

 

HDH

Lenke til kommentar

Den letteste formen for lagring av variabler får du gjennom Settings-funksjonaliteten i Visual Studio 2005. Den finner du ved å dobbelklikke på My Project og velge Settings. I dette tilfellet må du skrive inn Money og CompName over to rader under Name og sette Type for Money til Integer.

 

For å knytte tekstboksene opp mot disse to innstillingene, kan du gjøre som følger:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    ' Laster inn verdier

    txtMoney.Text = My.Settings.Money

    txtCompName.Text = My.Settings.CompName

End Sub

 

Private Sub txtMoney_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtMoney.TextChanged

    ' Oppdater endring

    My.Settings.CompName = txtMoney.Text

End Sub

 

Private Sub txtCompName_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtCompName.TextChanged

    My.Settings.CompName = txtCompName.Text

End Sub

Du kan få frem en dialogboks ved å bruke InputBox-funksjonen:

txtCompName.Text = InputBox("Skriv inn navn på datamaskin")

Edit: For øvrig må du bruke String, ikke Char, for å lagre tekst i VB .NET. Sistnevnte kan kun inneholde ett enkelt tegn.

Endret av aadnk
Lenke til kommentar
Gjest Slettet-aNZFa3

OK. nå har jeg et annet problem, erroren jeg får er: "Name 'Money' is not declared". Her koden min.

 

Public Class Form1

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Dim Money As Integer
       Dim CompName As String

       Money = 10000
       CompName = "Sarco Gaming"

       ToolStripStatusLabel2.Text = Money
   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Money += 1000
   End Sub
End Class

Lenke til kommentar
Gjest Slettet-aNZFa3

Jeg skjønte ikke helt det med scoping, kan noen prøve å forklare det for meg på en lett måte?

Lenke til kommentar

IF X = Y THEN }= Scope A

 VARIABEL VAR_A ' Innenfor Scope A
 VAR_A = 100

 IF Y = Z THEN }= Scope B
   VARIABEL VAR_B ' VAR_B blir deklarert innenfor Scope B
   MsgBox(VAR_A) ' Går fint, for vi er fortsatt innen samme scope
 END IF } End Scope B, her vil VAR_B gå ut av scope, og dermed bli ugyldig

 MsgBox(VAR_B) ' Ugyldig, VAR_B er gått ut av scope
 MsgBox(VAR_A) ' Gyldig, VAR_A er fortsatt i scope

END IF } End Scope A, VAR_A går ut av scope

 

Som man ser, så "arves" variabler innover koden, men går ikke til lavere nivåer en der de er deklarert.

Endret av GeirGrusom
Lenke til kommentar
Gjest Slettet-aNZFa3

Jeg skjønte det forsatt ikke helt, kan du bruke variablene mine som eksempel (tipper jeg skjøner det bedre da)

Lenke til kommentar
Jeg skjønte det forsatt ikke helt, kan du bruke variablene mine som eksempel (tipper jeg skjøner det bedre da)

8812439[/snapback]

Dersom variablene er deklarert innenfor prosedyren, varer de bare ut til prosedyren er slutt. De kan ikke nås i en annen prosedyre. For å unngå feilmeldingen, må du derfor flytte dem opp et hakk:

Public Class Form1

  Dim Money As Integer

  Dim CompName As String

 

  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

      Money = 10000

      CompName = "Sarco Gaming"

 

      ToolStripStatusLabel2.Text = Money

  End Sub

 

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

      Money += 1000

  End Sub

End Class

Lenke til kommentar
Gjest Slettet-aNZFa3
Jeg skjønte det forsatt ikke helt, kan du bruke variablene mine som eksempel (tipper jeg skjøner det bedre da)

8812439[/snapback]

Dersom variablene er deklarert innenfor prosedyren, varer de bare ut til prosedyren er slutt. De kan ikke nås i en annen prosedyre. For å unngå feilmeldingen, må du derfor flytte dem opp et hakk:

Public Class Form1

   Dim Money As Integer

   Dim CompName As String

 

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

       Money = 10000

       CompName = "Sarco Gaming"

 

       ToolStripStatusLabel2.Text = Money

   End Sub

 

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

       Money += 1000

   End Sub

End Class

8812674[/snapback]

 

 

Tusen Takk nå skjønner jeg det :D

Lenke til kommentar
Gjest Slettet-aNZFa3

Men hvis jeg har en "Form" til, åssen får jeg da variablen "Money" til å være i den også?

 

 

EDIT: trenger svar fort.

Endret av Slettet-aNZFa3
Lenke til kommentar
Men hvis jeg har en "Form" til, åssen får jeg da variablen "Money" til å være i den også?

Det enkleste blir å deklarere variablene med Public-nøkkelordet slik:

Public Money As Integer

Da kan du referere/bruke variabelen i Form2 ved å skrive Form1.Money, dersom den første formen heter Form1.

Endret av aadnk
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...