最近发现一个有意思的问题,用C#写的软件,在初始化界面时使用了本地文件夹中的图片文件。
比如初始化时用this.backgroundimage=imagefromfilr(@“***。png")来设置窗口背景,并且将软件注册为开机启动,直接调试时运行正常。但测试开机启动时则会在启动过程中意外停止。
可以确定的是图片路径和文件名没错,这从直接运行时正常这一点可以看出。实在搞不懂这是什么情况。
多次测试后用new bitmap(@"***.png")语句也出现这种情况。
不知道是否有人碰到过这样的情况,如果知道解决方法,肯请赐教!另外:我知道资料文件可以直接添加到项目的resx文件中或者做成dll库,这样可以解决,但软件的整体体积就要大了,而且扩展不便。软件测试C#imagefromfile

解决方案 »

  1.   

    你可以记录“意外停止”时的信息。例如using System;
    using System.IO;
    using System.Windows.Forms;namespace WindowsFormsApplication1
    {
        static class Program
        {
            /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.ThreadException += Application_ThreadException;
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
            }        static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
            {
                File.WriteAllText(".....", string.Format("{0}发生异常:\r\n\r\n{1}\r\n\r\n", DateTime.Now, e.Exception.ToString()));
            }
        }
    }
      

  2.   


    能来点儿有建设性的方法不?我是想动态加载本地的图片到窗口,而且后期还要考虑用户将本地的图片自定义为窗口背景。
    前面的代码加进去后程序卡钝得厉害。其实异常的位置已经很明确了,开机启动程序异常停止后使用调试功能定位到ImageFromFile语句,提示说如果使用相对路径请确保路径有效什么的。