运行组合框中显示的.pdf的最简单方法是什么?

时间:2011-12-19 00:20:05

标签: c# winforms 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");

这是一个直接的字符串路径,但我的问题是可能尝试重新创建这样的路径是错误的方向?

2 个答案:

答案 0 :(得分:2)

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

您需要指定PDF的安装路径作为第一个参数,并将pdf文件的名称指定为秒。

来自Shane评论的

编辑

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

答案 1 :(得分:1)

如果我理解正确,你在从组合框中获取完整路径时遇到问题?

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

如果这不是您实际遇到的问题,请尝试澄清您的问题,以便我们为您提供更好的帮助。