Savefile dialog..

Odpowiedz Nowy wątek
2019-11-07 11:46
0

Witam.
Nagle w aplikacji przestalo dzialac zapisywanie plikow (na wielu komputerach), nic w kodzie sie nie zmienilo w miejscu gdzie to zapisywanie sie odbywalo

    Dim mySaveFileDialog As New SaveFileDialog
        mySaveFileDialog.Filter = "CSV files (*.csv)|*.csv|All files (*.*)|*.*"
        mySaveFileDialog.FilterIndex = 1
        mySaveFileDialog.RestoreDirectory = True
        mySaveFileDialog.FileName = sFileName
        If mySaveFileDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
'jakims cudem kod nie wykonuje tej lini, bo mySaveFileDialog zwraca -1
            myDataToSave.SaveFile(mySaveFileDialog.FileName, RichTextBoxStreamType.PlainText)
        End If

Najdziwniejsze jest to ze w dokumentacji DialogResult enum nie ma nigdzie wartosci -1, sa tylko:
None 0
OK 1
Cancel 2
Abort 3
Retry 4
Ignore 5
Yes 6
No 7

Poblem rozwiazalem wrzucajac na forme SaveFileDialog zamiast tworzonego w kodzie mySaveFileDialog , ale bardzo mnie ciekawi skad nagle takie dziwne zachowanie kodu..
Probowalem mapowac wszystkie wlasciwosci dzialajacej kontrolki z formy na dynamiczny mySaveFileDialog2 i kontrolka zwraca OK, dynamiczny zwraca zawsze -1

        Dim mySaveFileDialog2 As New SaveFileDialog With {
            .Filter = "CSV files (*.csv)|*.csv|All files (*.*)|*.*",
            .FilterIndex = 1,
            .RestoreDirectory = True,
            .FileName = sFileName,'added after:
            .ValidateNames = False,
            .AddExtension = True,
            .CheckFileExists = False,
            .CheckPathExists = True,
            .CreatePrompt = False,
            .DefaultExt = "",
            .DereferenceLinks = True,
            .OverwritePrompt = True,
            .Title = "Save as"
        }
edytowany 2x, ostatnio: Ktos, 2019-11-07 12:04

Pozostało 580 znaków

2019-11-07 13:33

Odpowiem sobie sam, moze komus sie przyda :)
Okazuje sie ze FileSaveDialog wystepuje w 2 wariantach:

Microsoft.Win32.SaveFileDialog
System.Windows.Forms.SaveFileDialog

Wyglada na to ze po dodaniu lini:

Imports Microsoft.Win32 

program zaczol uzywac nie tych klas, ktore zostaly zaprogramowane

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0