【问题标题】:Is there any sort of ways to actually prevent "crash" on missing images. (windows form application c#)有什么方法可以真正防止丢失图像的“崩溃”。 (windows窗体应用程序c#)
【发布时间】:2014-10-27 12:58:55
【问题描述】:

所以。我最近刚开始使用整个 windows 窗体应用程序 c# 部分。

我的问题是。如果图像丢失,是否有任何巧妙的方法可以防止程序崩溃?

目前我正在制作自己的小程序,人们可以在其中更改应用程序的外观(目前仅通过图像)。万一有人忘记“重新添加”图像,最好让它仍然工作,不会因为缺少图像而崩溃。

(stackoverflow 的新手,所以我不知道这是否是正确的地方)。

感谢您抽出宝贵时间,希望这是有道理的。否则,我会尝试不同的解释。

【问题讨论】:

  • 尝试捕获异常并为丢失的图像设置默认值
  • 我在 foreach 上使用了它,只是为了检查一些 xml 内容。但是,我不确定它是否真的适用于图像,我也不知道如何将图像设置为“ none" - "null",以防找不到图像。
  • 使用默认图片。或者也存储最后一个用户选择的图像。如果缺少当前的,请使用该(最后/默认)。
  • 你到底是什么意思。 andrei.ciprian

标签: c# image styling


【解决方案1】:

有两种方法可以做到这一点(可能更多:))第一种是检查图像是否存在,如果您从硬盘驱动器获取图像

if(File.Exists(@"C:\img.jpg"))
{
     //do stuff
}

另一种方法是使用 try-catch 块来捕获错误

try
{
    pictureBox1.Image = Bitmap.FromFile(@"C:\img.jpg");
}
catch(Exception ex)
{
     MessageBox.Show(ex.ToString());
}

您可能还有其他方法可以做到这一点,但我认为这两种是最简单的。

【讨论】:

  • 已更正。另外,我建议使用both。当您知道可能存在某些错误条件并且您知道如何在没有进一步用户输入的情况下处理它们时,最好避免异常处理。最好有异常处理以向用户报告意外错误(例如,文件存在,但您无权读取它)。
  • “文件”在此上下文中不存在。这就是它所说的。 try-catch 应该在整体上工作得很好,但我现在对那个文件很好奇o_o
  • 完全忘记了“使用部分”。所以我设法“正确加载它”。我会将此响应设置为答案。谢谢大家:)
猜你喜欢
  • 2011-04-18
  • 1970-01-01
  • 2016-06-29
  • 1970-01-01
  • 1970-01-01
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多