Gå til innhold

Ja/Nei funksjon i messagebox etter button_click?


Anbefalte innlegg

Hei! Sorry for litt.. rar emnetittel! Men var vanskelig å definere spm mitt.. :)

 

 

Jeg trenger hjelp til en litt simpel ting...

 

Jeg har en kode:

 

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
       Dim file As New System.IO.StreamWriter("c:\test.txt")
       file.Dispose()
       file.Close()

 

Det denne koden gjør for meg, er at den resetter en tekstfil som jeg bruker som logg. Men, etter at man har trykket inn button4, vil jeg at det skal komme opp en messagebox, som spør om man er sikker, med et valg mellom ja og nei (e.l)

 

Jeg kan jo gjøre dette på den mer tunvinne måten, med å lage en ny form til akkurat dette.

Men jeg vil gjøre det på den lette måten, da jeg sikkert kommer til å bruke denne funksjonen flere ganger! :)

 

Håper på svar!

Lenke til kommentar
Videoannonse
Annonse
If MsgBox("Vil du virkelig gjøre dette?") = DialogResult.OK Then
 If System.IO.File.Exist("c:\test.txt") Then System.IO.File.Delete("c:\test.txt")
 Dim file As New System.IO.StreamWriter("c:\test.txt")
 ' Skriv til fil her
 file.Close()
 file.Dispose() ' Dispose er unødvendig
End If

Endret av GeirGrusom
Lenke til kommentar

En klasse har hva man kaller en "destructor" (Finalize i VB) det denne funksjonen gjør, er å evt slette all rest data som ikke fjernes av garbage collectoren automatisk.

Problemet med destructors er at de ikke nødvendigvis blit kalt når objektet ikke lenger er i bruk, det er ikke engang garantert at den noensinne blir kalt.

Derfor har man et interaface som heter IDisposable som implementerer en Dispose funksjon.

I denne funskjonen skal man frigjøre eventuelle unmanaged ressurser som objektet har brukt, for hvis dette gjøres i destructoren, kan det eventuelt skape en memory leak.

Database koplinger skal også lukkes i Dispose.

Lenke til kommentar
Jeg vet ikke om det finnes noe lignende using i VB.NET....

9007705[/snapback]

Joda, Using fungerer utmerket i den nyeste versjonen:

Using File As New IO.StreamReader("C:\Test.txt")

    MessageBox.Show(File.ReadToEnd)

End Using

Lenke til kommentar

...en annen ting er småting som assignment og comparison...

 

i C#:

 

int i = 1;

bool b = (i == 2);

 

En annen ting er arrays vs. funksjonskall:

 

i VB:

aRandomName(2) 'Er dette en array, eller en funksjon som tar en int som parameter?

 

aRandomName(3)(4) 'Er dette en To-dimensjonal array, eller er det en array som returneres av en funksjon?

Lenke til kommentar

angående assignment i C#, kan man jo også skrive int a = b = c = 32; som effektivt vil sette a, b, c og d lik 32.

Man kan også bruke dette i funksjoner som

if((newfile = LoadFile("hello_world.txt")) == null)
 throw new Exception("File load failed")

Mens i VB vil bruken av = bli veldig forvirrende.

Lenke til kommentar
angående assignment i C#, kan man jo også skrive int a = b = c = 32; som effektivt vil sette a, b, c og d lik 32.

 

 

 

En stund siden jeg har drevet med VB nå, men kan man ikke gjøre slik i VB.NET?:

"Dim a, b, c As Integer = 32?

 

 

EDIT: Merklig, VB.NET føles nesten like rart som C# før jeg hoppa over på det for noen måneder siden.

Endret av ze5400
Lenke til kommentar
angående assignment i C#, kan man jo også skrive int a = b = c = 32; som effektivt vil sette a, b, c og d lik 32.

 

 

 

En stund siden jeg har drevet med VB nå, men kan man ikke gjøre slik i VB.NET?:

"Dim a, b, c As Integer = 32?

 

 

EDIT: Merklig, VB.NET føles nesten like rart som C# før jeg hoppa over på det for noen måneder siden.

9061352[/snapback]

 

Du har rett i det, men det kan kun være én assignment per linje, dette kunne fint være skrevet sånn i VB, men ikke utenfor variable deklerasjon

int a, b, c;

a = b = c = 32;

 

er derimot ikke mulig i VB, da alle = etter det første vil bli gjort om til en sammenligning istedet for assigment.

så da vil man vel få compile error om at a er av typen int, og ikke bool, samt at alle de andre variablene ikke er gitt en verdi.

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...