当我们在调试模式下执行时,我的窗口形式应用于stoped工作 [英] My windowform applicatioin stoped working when we execute in debugging mode

查看:79
本文介绍了当我们在调试模式下执行时,我的窗口形式应用于stoped工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我在调试模式下使用C#打开时,应用程序停止工作#

一张图像是



我尝试过的方法:



  private  < span class =code-keyword> void  Export()
{
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.Filter = Excel文件(* .xlsx)| * .xlsx |所有文件(*。 。*)| *。*;
saveDialog.FilterIndex = 2 ;

if (saveDialog.ShowDialog()== System.Windows.Forms.DialogResult.OK)
{
xlWorkBook.SaveAs(saveDialog.FileName,Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal,misValue,misValue,misValue,misValue,Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,misValue,misValue,misValue,misValue,misValue) ;
StripStatusLabel.Visible = true ;
StripStatusLabel.Image = Image.FromFile( @ \\90.0.0.8\d\ Nouman's Development\SizaPayRoll For Backup\backup\SizaPayRoll\icons\images(3).jpg);
StripStatusLabel.ForeColor = Color.Green;
StripStatusLabel.Text = 增量导出成功excel ...;
xlWorkBook.Close( true ,misValue,misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
}
else if (saveDialog.ShowDialog()== System.Windows .Forms.DialogResult.Cancel)
{

}
}
private void releaseObject( object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null ;
}
catch (例外情况)
{
obj = null ;
MessageBox.Show( 在发布对象时发生异常 + ex.ToString()) ;
}
最后
{
GC.Collect();
}
}

解决方案

我只能假设......但我认为你应该改变你的代码这:

  private   void 导出()
{
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.Filter = Excel文件(* .xlsx)| * .xlsx |所有文件(*。 。*)| *。*;
saveDialog.FilterIndex = 2 ;
DialogResult myResult = saveDialog.ShowDialog; // < - 此处更改!!!

if (myResult == System.Windows.Forms.DialogResult.OK) // < - 这里的变化!!!
{
xlWorkBook.SaveAs(saveDialog.FileName,Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal,misValue,misValue,misValue,misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive,misValue,misValue,misValue,misValue,misValue);
StripStatusLabel.Visible = true ;
StripStatusLabel.Image = Image.FromFile( @ \\90.0.0.8\d\ Nouman's Development\SizaPayRoll For Backup\backup\SizaPayRoll\icons\images(3).jpg);
StripStatusLabel.ForeColor = Color.Green;
StripStatusLabel.Text = 增量导出成功excel ...;
xlWorkBook.Close( true ,misValue,misValue);
xlApp.Quit();
releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
}
else if (myResult == System.Windows.Forms.DialogResult .Cancel) // < - 此处更改!!!
{

}
}

...因为如果你从SaveFileDialog获得一个DialogResult,SaveFileDialog就不再存在...



请试一试......


application stopped working when i open in debugging mode using C#
one image are

What I have tried:

private void Export()
{ 
 SaveFileDialog saveDialog = new SaveFileDialog();
            saveDialog.Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
            saveDialog.FilterIndex = 2;

            if (saveDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                xlWorkBook.SaveAs(saveDialog.FileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
                StripStatusLabel.Visible = true;
                StripStatusLabel.Image = Image.FromFile(@"\\90.0.0.8\d\Nouman's Development\SizaPayRoll For Backup\backup\SizaPayRoll\icons\images (3).jpg");
                StripStatusLabel.ForeColor = Color.Green;
                StripStatusLabel.Text = "Increment export to excel successfully...";
                xlWorkBook.Close(true, misValue, misValue);
                xlApp.Quit();
                releaseObject(xlWorkSheet);
                releaseObject(xlWorkBook);
                releaseObject(xlApp);
            }
            else if (saveDialog.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)
            {

            }
}
 private void releaseObject(object obj)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj = null;
            }
            catch (Exception ex)
            {
                obj = null;
                MessageBox.Show("Exception Occured while releasing object " + ex.ToString());
            }
            finally
            {
                GC.Collect();
            }
        }

解决方案

I only can suppose ... but I think you should change your code like this :

private void Export()
{ 
 SaveFileDialog saveDialog = new SaveFileDialog();
            saveDialog.Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
            saveDialog.FilterIndex = 2;
            DialogResult myResult = saveDialog.ShowDialog ;  // <- Changes here !!!

            if (myResult == System.Windows.Forms.DialogResult.OK)  // <- Changes here !!!
            {
                xlWorkBook.SaveAs(saveDialog.FileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
                StripStatusLabel.Visible = true;
                StripStatusLabel.Image = Image.FromFile(@"\\90.0.0.8\d\Nouman's Development\SizaPayRoll For Backup\backup\SizaPayRoll\icons\images (3).jpg");
                StripStatusLabel.ForeColor = Color.Green;
                StripStatusLabel.Text = "Increment export to excel successfully...";
                xlWorkBook.Close(true, misValue, misValue);
                xlApp.Quit();
                releaseObject(xlWorkSheet);
                releaseObject(xlWorkBook);
                releaseObject(xlApp);
            }
            else if (myResult == System.Windows.Forms.DialogResult.Cancel)  // <- Changes here !!!
            {

            }
}

... because if you get a DialogResult from the SaveFileDialog the SaveFileDialog is no more existing ...

Please try it ...


这篇关于当我们在调试模式下执行时,我的窗口形式应用于stoped工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆