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



我已经将文件加载到组合框…

private void Form1_Load(object sender, EventArgs e)
        {
            Directory.CreateDirectory(@"X:BookStoreProjectWindowsFormsApplication2ResourcesPDF_Books");
            DirectoryInfo dir = new DirectoryInfo(@"X:BookStoreProjectWindowsFormsApplication2ResourcesPDF_Books");
            FileInfo[] files = dir.GetFiles("*.pdf");
            foreach (FileInfo file in files)
            { 
                cboPDF.Items.Add(file);
            }

我现在要从组合框中选择pdf并加载pdf。但出于某种原因,我做的每件事都不起作用。我可以运行一个命令(注意这是一个不同的项目)…

System.Diagnostics.Process.Start(@"C:UsersShaneDocumentsVisual Studio 2010ProjectsBeginning Hibernate, 2006.pdf");

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

Process.Start("Path_OF_Pdf.Exe", System.IO.Path.Combine("@X:BookStoreProjectWindowsFormsApplication2ResourcesPDF_Books",cboPDF.SelectedItem.ToString()));

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

EDIT from Shane's Comments

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

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

如果这确实是您的问题,那么最简单的方法是创建一个新类,其中包含文件的完整路径和您想要显示的文件的"友好"名称。在本例中,我们将它们命名为。path和。name。为每个文件实例化其中一个类,并按照您希望的方式填充. path和. name属性,然后将此实例添加到组合框中。设置ComboBox的。displaymember属性为"Name", . valuemember属性为"Path"。这将导致组合框在。name属性中显示友好的名称,但在调用ComboBox.SelectedValue时返回您在。path属性中输入的内容。只需使用组合框。SelectedValue获取项目的路径。

如果这不是你实际遇到的问题,请尽量澄清你的问题,以便我们更好地帮助你。

最新更新