本帖最后由 leeyear074173410 于 2011-04-22 17:56:42 编辑 namespace gao1
{
public partial class SimpleGraphic : Form
{
public SimpleGraphic()
{
InitializeComponent();
}
private void SimpleGraphic_Load(object sender, EventArgs e)
{
// Show full screen
this.ControlBox = false;
// Load graphic into PictureBox
string path = GetApplicationDirectory();
Image img = new Bitmap(Path.Combine(path, "graphic.jpg"))
pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
pictureBox1.Image = img;
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
private string GetApplicationDirectory()
{
return System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName);
}
}
}
该程序运行时,总是出现错误,无法显示图片。
出现错误:
未处理的“System.IO.FileNotFoundException”类型的异常出现在 mscorlib.dll 中。
其他信息: An error message cannot be displayed because an optional resource assembly containing it cannot be found
显示path路径是:path "\\Program Files\\gao1"
但是我程序的路径是
D:\我的文档\Visual Studio 2005\Projects\gao1
图片路径D:\我的文档\Visual Studio 2005\Projects\gao1\gao1
请大家帮帮忙,看一下,这个问题纠结了很久了
我目前自己猜测可能是path获取的是模拟器的路径即\\Program Files\\gao1。所以无法获取我本地硬盘的图片,如果是这个原因,应该怎样配置一下,才能连接到本地硬盘,获取图片。
------解决方案--------------------------------------------------------
WM下面要用绝对路径。
------解决方案--------------------------------------------------------
WM是CE的内核,CE下也要求必须使用绝对路径,因它CE系统中没有当前目录的概念。
不像PC上的XP等,可以直接从程序运行目录中读取文件。
使用:
Image img = new Bitmap(Path.Combine(path, "\\graphic.jpg"))
或图片所在的全路径。
------解决方案--------------------------------------------------------
不管是绝对路径,还是图片全路径,错误都还是一样的。
自动窗口显示
名称 值
img null
path “\Program File\\gao1”这里的意思是说用GetApplicationDirectory()
获得的文件路径是这个。
我用return System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
获得的路径也依旧是\Program File\\gao1,但是我的程序不再该路径下,