当我们在调试模式下执行时,我的窗口形式应用于stoped工作 [英] My windowform applicatioin stoped working when we execute in debugging mode
本文介绍了当我们在调试模式下执行时,我的窗口形式应用于stoped工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
一张图像是
我尝试过的方法:
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屋!
查看全文