2015-11-12 3 views
0

Я хочу изменить текстовую метку, когда вы нажмете «Отмена» в SaveFileDialog. У меня все работает, только у меня есть одна проблема, когда я удалю. Отмена SaveFileDialog появится снова, и мне нужно снова нажать «Отмена».VB.net SaveFileDialog необходимо отменить дважды

Когда я добавляю этот код, мне нужно нажать Отмена дважды, без этого кода он работает нормально.

If SaveFileDialog1.ShowDialog() = DialogResult.Cancel Then 
     Label1.Text = "Not Saved" 
    End If 

Мой полный код для сохранения:

Label1.Text = "Saving..." 
    TextBox1.Visible = False 
    SaveFileDialog1.InitialDirectory = "C:/" 
    SaveFileDialog1.Title = "Save Your Results" 
    SaveFileDialog1.FileName = Label2.Text 
    SaveFileDialog1.Filter = ("text files (*.txt) | *.txt") 

    SaveFileDialog1.ShowDialog() 

    Dim w As New IO.StreamWriter(SaveFileDialog1.FileName) 
    Dim i As Integer 
    For i = 0 To ListBox1.Items.Count - 1 
     w.Write(ListBox1.Items(i).ToString) 
    Next 
    w.Close() 

    Label1.Text = "Saved" 
    If SaveFileDialog1.ShowDialog() = DialogResult.Cancel Then 
     Label1.Text = "Not Saved" 
    End If 
+0

Есть ли у вас какие-либо окна проводника надстройки? Это происходит и в новом проекте? – LarsTech

+0

Нет надстроек. Это также происходит в других проектах. – Mathijs

+0

Это также происходит на другом компьютере при запуске? – LarsTech

ответ

2

Вы показываете диалог в два раза, поэтому постарайтесь только показывать его один раз:

If SaveFileDialog1.ShowDialog() = DialogResult.Ok Then 
    Dim w As New IO.StreamWriter(SaveFileDialog1.FileName) 
    Dim i As Integer 
    For i = 0 To ListBox1.Items.Count - 1 
    w.Write(ListBox1.Items(i).ToString) 
    Next 
    w.Close() 
    Label1.Text = "Saved" 
Else 
    Label1.Text = "Not Saved" 
End If 
Смежные вопросы