2011-12-19 40 views
2

我已经加载的文件组合框...在组合框中运行.pdf的最简单方法是什么?

private void Form1_Load(object sender, EventArgs e) 
     { 
      Directory.CreateDirectory(@"X:\BookStoreProject\WindowsFormsApplication2\Resources\PDF_Books"); 

      DirectoryInfo dir = new DirectoryInfo(@"X:\BookStoreProject\WindowsFormsApplication2\Resources\PDF_Books"); 
      FileInfo[] files = dir.GetFiles("*.pdf"); 
      foreach (FileInfo file in files) 
      { 
       cboPDF.Items.Add(file); 
      } 

我现在要选择从组合框中PDF和加载PDF文件。但出于某种原因,我尝试的所有东西都不起作用。我可以运行一个命令(注意这是一个不同的项目)...

System.Diagnostics.Process.Start(@"C:\Users\Shane\Documents\Visual Studio 2010\Projects\Beginning Hibernate, 2006.pdf"); 

即给人一种直接的路径字符串,但我的问题是,也许要重新建立路径一样,这是错误的方向?

+0

你为什么认为这是一个错误的方向?如果你想访问一个文件,你确实需要某种路径。 – svick 2011-12-19 00:22:12

+0

注意:我不想写这样的完整字符串,我正在寻找存储字符串,因为我将新的pdf图书添加到源文件仍然可用。后来在我的表单中添加更多带有选项的源文件,即C#,C++,Java等。因此,我想重写每个路径并存储匹配的组合框选定项目......问题正在得到解决。 – Shane 2011-12-19 00:25:44

回答

2
Process.Start("Path_OF_Pdf.Exe", System.IO.Path.Combine("@X:\BookStoreProject\WindowsFormsApplication2\Resources\PDF_Books",cboPDF.SelectedItem.ToString())); 

您需要指定PDF的安装路径作为您的第一个参数和PDF文件的名称作为第二个。

编辑从巴蒂尔的评论

string w = System.IO.Path.Combine(@"X:\BookStoreProject\WindowsFormsApplication2\Resources\‌​PDF_Books\", cboPDF.SelectedItem.ToString()); 
System.Diagnostics.Process.Start(w); 
+0

我试过了,仍然出错。在“”X:\ BookStore ...的前面添加@以停止转义错误,然后将System.Diagnostics.Process.Start作为自己的错误添加为Precess。 – Shane 2011-12-19 00:42:54

+0

我还在路径的末尾添加了\,因为我从cboPDF中计算出的字符串会碰到路径。不知道这里给出了什么? – Shane 2011-12-19 00:46:15

+0

你不需要在Path.Combine会做的路径末尾添加'\' – 2011-12-19 00:47:21

1

如果我理解正确的,你有问题,从组合框中获取完整路径?

如果这实际上是您的问题,那么最简单的方法是创建一个新的类,其中包含文件的完整路径以及要显示的文件的“友好”名称。让我们把这个例子叫做.Path和.Name。为每个文件实例化这些类中的一个,然后按照需要的方式填充.Path和.Name属性,然后将此实例添加到组合框中。将ComboBox的.DisplayMember属性设置为“Name”,并将.valueMember属性设置为“Path”。这将导致组合框在.Name属性中显示友好名称,但在调用ComboBox.SelectedValue时返回您在.Path属性中放置的任何内容。只需使用ComboBox.SelectedValue来获取该项目的路径。

如果这不是你真正遇到的问题,请尝试澄清你的问题,以便我们可以更好地帮助你。

+0

感谢布拉德利的回应,这不完全是我的问题,但我可能会创建一个类,因为我发展这个项目。 – Shane 2011-12-19 00:58:35

相关问题