Ошибка при отмене сохранения файла через SaveFileDialog - Visual Basic .NET
Формулировка задачи:
Создаю файл Word и сохраняю его при помощи SaveFileDialog
Если файл сохраняю то приложение работает нормально,
но если нажимаю "отменить"
в SaveFileDialog, тогда приложение вылетает и выдаёт ошибку, или напрочь зависает если ставлю обработчик ошибок Try Catch.Решение задачи: «Ошибка при отмене сохранения файла через SaveFileDialog»
textual
Листинг программы
Dim sd As New SaveFileDialog sd.Filter = "Документ Word(*.docx)|*.docx" sd.FileName = Label1.Text If sd.ShowDialog = System.Windows.Forms.DialogResult.OK Then ' Create Word Application Dim oWord As Word.Application = DirectCast(CreateObject("Word.Application"), Word.Application) ' Create new word document Dim oDoc As Word.Document = oWord.Documents.Add() oWord.Visible = False oDoc.Range.InsertAfter(Label1.Text) oDoc.Range.InsertParagraphAfter() Dim headers = (From ch In Grid1.Columns _ Let header = DirectCast(DirectCast(ch, DataGridViewColumn).HeaderCell, DataGridViewColumnHeaderCell) _ Select header.Value).ToArray() Dim headerText() As String = Array.ConvertAll(headers, Function(v) v.ToString) Dim items() = (From r In Grid1.Rows _ Let row = DirectCast(r, DataGridViewRow) _ Where Not row.IsNewRow _ Select (From cell In row.Cells _ Let c = DirectCast(cell, DataGridViewCell) _ Select c.Value).ToArray()).ToArray() Dim table As String = String.Join(vbTab, headerText) & Environment.NewLine For Each a In items Dim t() As String = Array.ConvertAll(a, Function(v) v.ToString) table &= String.Join(vbTab, t) & Environment.NewLine Next table = table.TrimEnd(CChar(Environment.NewLine)) Clipboard.SetText(table) Dim oTable As Word.Table = oDoc.Tables.Add(oDoc.Bookmarks.Item("\endofdoc").Range, items.Count + 1, headers.Count) oTable.Range.Paste() 'сохранение файла oDoc.SaveAs(sd.FileName) oDoc.Close() oWord.Quit() 'уничтожаем объект - документ oDoc = Nothing 'уничтожаем объект - Word oWord = Nothing End If sd.Dispose
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д