Какой самый простой способ запустить .pdf, отображаемый в поле со списком? - PullRequest
2 голосов
/ 19 декабря 2011

Я загрузил файлы в поле со списком ...

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 ]

2 голосов
/ 19 декабря 2011
Process.Start("Path_OF_Pdf.Exe", System.IO.Path.Combine("@X:\BookStoreProject\WindowsFormsApplication2\Resources\PDF_Books",cboPDF.SelectedItem.ToString()));

Вам необходимо указать путь установки вашего PDF в качестве первого параметра и имя файла PDF в качестве второго.

EDIT из комментариев Шейна

string w = System.IO.Path.Combine(@"X:\BookStoreProject\WindowsFormsApplication2\Resources\‌​PDF_Books\", cboPDF.SelectedItem.ToString());
 System.Diagnostics.Process.Start(w);
1 голос
/ 19 декабря 2011

Если я правильно понимаю, у вас проблемы с получением полного пути из списка?

Если это действительно ваша проблема, самый простой способ сделать это - создать новый класс, который будет содержать как полный путь к файлу, так и «понятное» имя файла, который вы хотите отобразить. Давайте назовем их .Path и .Name для этого примера. Создайте один из этих классов для каждого файла и заполните свойства .Path и .Name так, как вы хотите, а затем добавьте этот экземпляр в поле со списком. Установите для свойства ComboBox .DisplayMember значение «Имя», а для свойства .valueMember значение «Путь». это приведет к тому, что в комбинированном окне отобразится понятное имя в свойстве .Name, но при вызове ComboBox.SelectedValue вы получите то, что вы указали в свойстве .Path. Просто используйте ComboBox.SelectedValue, чтобы получить путь к элементу.

Если это не то, с чем у вас на самом деле проблема, попробуйте уточнить ваш вопрос, чтобы мы могли помочь вам лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...