string[] files = Directory.GetFiles(@"E:\执行外部EXE\WindowsApplication1\bin","*.exe");
int x = 10;
int y = 10;
int i = 0;
foreach (string file in files)
{
Label lab = new Label();
lab.Name = Path.GetFileNameWithoutExtension(file);
lab.Text = lab.Name;
lab.Location = new Point(x+x*2, y + 50 * i);
lab.Tag = Path.GetExtension(file);
lab.Click += new EventHandler(lab_Click);
this.Controls.Add(lab);
i++;
}
}
private void lab_Click(object sender, EventArgs e)
{
Control control = sender as Control;
string name = control.Name;
string extension = control.Tag.ToString();
string file = name + extension;
//string file = Path.Combine(@"E:\执行外部EXE\WindowsApplication1\bin",control.Tag.ToString()+".exe"); 
System.Diagnostics.Process.Start(file); }最后一行~  start(file)  这里说找不到系统路径`  这是为什么 `  要怎么改呢    还有就是路径不能写死了` 我要怎么写`~~  高人指教一下啊 小弟先谢过了

解决方案 »

  1.   

    后面你在使用的时候
    file = name + extension;
    那么  file可能等于  "dawda.exe",但是没有前面的"E:\执行外部EXE\WindowsApplication1\bin"改为
    file = @"E:\执行外部EXE\WindowsApplication1\bin\" +  name + extension;
      

  2.   

    不写死路径的话  有2种途径
    1.如果.exe的路径与当前系统执行路径有关系的话,可以使用相对Application.StartPath的路径完成。
    2.如果.exe的路径是任意的,没有什么规律的话,最好使用配置文件,将基路径放在app.config中,运行时加载。
      

  3.   

    使用相对StartPath路径或者Application.ExecutablePath
    为方便的话,可以写到配置文件中
      

  4.   

    程序找到路径了`  能运行了`  现在的问题是我想知道路径怎么写`   现在我的exe放到了~主程序下`在bin目录下` 如何写呢 不要写成E:\这个样子`  这写成bin\...像这样的样子`就是说不管我换到哪个机子上都能正常运行  在线等~ 解决问题就结贴~~
      

  5.   

    Application.StartPath根目录固定,你再设置下面的目录好了,比如配置里在设置@'\test\',然后合并下