日期:2014-05-18  浏览次数:21022 次

c#(新手提问) 关于toolstrip的一个小实例运行的问题
窗体程序的源码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ToolStripDemo1
{
  public partial class Form1 : Form
  {
  public Form1()
  {
  InitializeComponent();
  this.InitToolStrip(this.toolStrip1);
  }
  private void InitToolStrip(ToolStrip toolStrip)
  {
  toolStrip.CanOverflow = true;
  toolStrip.ShowItemToolTips = true;
  toolStrip.RenderMode = ToolStripRenderMode.System;
  toolStrip.TextDirection = ToolStripTextDirection.Horizontal;


  ToolStripLabel LabelStrip = new ToolStripLabel();
  LabelStrip.Text = "输入查找内容:";
  LabelStrip.DisplayStyle = ToolStripItemDisplayStyle.Text;
  toolStrip.Items.Add(LabelStrip);


  ToolStripTextBox TextBoxStrip = new ToolStripTextBox();
  TextBoxStrip.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
  TextBoxStrip.AutoCompleteSource = AutoCompleteSource.FileSystemDirectories;
  toolStrip.Items.Add(TextBoxStrip);

  ToolStripButton ButtonStrip = new ToolStripButton();
  ButtonStrip.Text = "查找";
  ButtonStrip.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
  ButtonStrip.Image = Image.FromFile("Find.ico");
  toolStrip.Items.Add(ButtonStrip);
   
  }
  }
}

发生的异常如下:
[未处理 System.IO.FileNotFoundException
  Message=Find.ico
  Source=System.Drawing
  StackTrace:
  在 System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement)
  在 System.Drawing.Image.FromFile(String filename)
  在 ToolStripDemo1.Form1.InitToolStrip(ToolStrip toolStrip) 位置 D:\vs2010\WINDOWS窗体应用程序\ToolStripDemo1\ToolStripDemo1\Form1.cs:行号 41
  在 ToolStripDemo1.Form1..ctor() 位置 D:\vs2010\WINDOWS窗体应用程序\ToolStripDemo1\ToolStripDemo1\Form1.cs:行号 17
  在 ToolStripDemo1.Program.Main() 位置 D:\vs2010\WINDOWS窗体应用程序\ToolStripDemo1\ToolStripDemo1\Program.cs:行号 18
  在 System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
  在 System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
  在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
  在 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
  在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
  在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
  在 System.Threading.ThreadHelper.ThreadStart()
  InnerException: 


------解决方案--------------------
不是有错误堆栈么?很清楚呀。

 ButtonStrip.Image = Image.FromFile("Find.ico");

Find.ico 没找到。 是不是 Find.icon ?
------解决方案--------------------
和扩展名没关系,查查 Find.ico 在exe同级目录下有没有罢
------解决方案--------------------
删掉下面这句:
C# code
ButtonSt