Mikä koodissa vikana? Tein savefiledialog harjoituksen sivulta: http://www.homeandlearn.co.uk/NET/nets4p9.html
Jostain syystä dialogissa joutuu painamaan kahdesti jompaa kumpaa nappia (save tai cancel).
Private Sub menu_save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles menu_save.Click Dim tiedostonimi As String Dim didwork As String SaveFD.OverwritePrompt = True SaveFD.Title = "tallenna tiedosto" SaveFD.InitialDirectory = "c:\" SaveFD.Filter = "text files|*.txt" SaveFD.ShowDialog() tiedostonimi = SaveFD.FileName didwork = SaveFD.ShowDialog() If didwork = DialogResult.Cancel Then MsgBox("cancel nappia painettiin") Else tiedostonimi = SaveFD.FileName MsgBox("tiedosto " & tiedostonimi & " tallennettu") End If End Sub
Moikka taas novice!
Komennon 'tuplaus' johtuu siitä, että koodi avaa dialogi-ikkunan kahteen kertaan...
'.... ' koodi avaa dialogi-ikkunan tässä ensimmäisen kerran... SaveFD.ShowDialog() '... '...ja tässä uudestaan (ensimmäinen on turha)... didwork = SaveFD.ShowDialog() '...
Lisää erikoisuuksia...yleensäkään Windows ohjelmissa Menun File-valikon Save-toiminnon yhteydessä ei käytetä SaveFileDialog-funktiota, vaan tiedosto tallennetaan suoraan mitään kyselemättä samalla nimellä, jolla se on avattu (tiedostopolku haetaan joko esim. OpenFileDialog1.FileName -ominaisuudesta tai se on tallennettu julkiseen muuttujaan...) Sen sijaan kyseinen toiminto liitetään Menussa yleensä Save As-valintaan. Eli Menun Save-valinta on joko estetty tai sitä ei edes näy Menun File-valikossa jos mitään tiedostoa ei ole avattu...
Mutta jos nyt edetään näillä eväillä niin rivi...
tiedostonimi = SaveFD.FileName
pitäisi luonnollisesti olla muodossa...,
SaveFD.FileName=tiedostonimi
jolloin tiedostonimi näkyy automaattisesti Tiedostonimi: tekstiruudussa, kun SaveFileDialog-ikkuna avautuu...
Kiitos vastauksesta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.