【问题标题】:How can i get rid of message box after user clicks cancel in dialog box in vb.net?用户在 vb.net 的对话框中单击取消后,如何摆脱消息框?
【发布时间】:2013-07-31 12:21:04
【问题描述】:

我的表单中有一个 SaveAs 对话框,用于保存 Excel 工作表。当我单击对话框中的取消时,会出现另一个消息框,询问“您要保存对 Book1 所做的更改吗?”。我希望摆脱这个消息框,因为用户已经决定不通过单击取消来保存 excel...请帮助.. 谢谢...

         Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim xlApp As Microsoft.Office.Interop.Excel.Application
    Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
    Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet
    Dim misValue As Object = System.Reflection.Missing.Value

    Dim myArray(DataGridView1.Rows.Count - 1, DataGridView1.Columns.Count - 1) As Object

    Dim r As Integer
    Dim c As Integer

    xlApp = New Microsoft.Office.Interop.Excel.ApplicationClass
    xlWorkBook = xlApp.Workbooks.Add(misValue)
    xlWorkSheet = CType(xlWorkBook.Worksheets.Item("sheet1"), Microsoft.Office.Interop.Excel.Worksheet)
                                                                                                                 For r = 0 To DataGridView1.Rows.Count - 1
        For c = 0 To DataGridView1.Columns.Count - 1
            myArray(r, c) = DataGridView1.Rows(r).Cells(c).Value
        Next cc 
       xlWorkSheet.Range("A1").Resize(DataGridView1.Rows.Count, DataGridView1.Columns.Count).Value = myArray
      Dim saveFileDialog As New SaveFileDialog()
    saveFileDialog.Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*"
    saveFileDialog.FilterIndex = 2
    saveFileDialog.RestoreDirectory = True

    If saveFileDialog.ShowDialog() = DialogResult.OK Then
        xlWorkSheet.SaveAs(saveFileDialog.FileName)
        MsgBox(" Your file has been saved")

    End If


    xlWorkBook.Close()
    xlApp.Quit()
    xlApp = Nothing
    xlWorkBook = Nothing
    xlWorkSheet = Nothing                                                                                            
 End Sub

【问题讨论】:

  • 小心,“取消”操作通常应该是非破坏性的,我不希望应用程序在单击取消时关闭和未保存的工作簿,取消应该始终是一个安全的选项。

标签: vb.net


【解决方案1】:

使用 false 调用 close 方法以不显示对话框。

xlWorkBook.Close(False)

More on MSDN

【讨论】:

    【解决方案2】:

    在退出前试试这个:

    xlApp.DisplayAlerts = False
    

    或者将False值传递给close方法:

    xlWorkBook.Close(False)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 2018-06-29
      • 1970-01-01
      • 2012-06-10
      相关资源
      最近更新 更多