2011-12-19 104 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

相關問題