2016-01-22 8 views
0

Я администратор сети, которому было поручено создать систему безбумажного соединения. Поэтому сейчас я смотрю на VB.net как на свою платформу. Моя цель - заполнить список с элементами внутри папки, используя их имена файлов, это в основном файлы PDF. Поэтому я достиг этой цели, и когда я нажимаю элементы в списке, открывается файл в папке. Я хочу, если щелкнуть элемент в списке, появится другая форма. Эта форма имеет встроенный PDF-ридер и текстовое поле для комментариев. текстовое поле будет сохранено в TXT-файле внутри другой папки. вот мой кодОткрыть другую форму при нажатии элемента в ListBox VB.net

Public Class Form2 

Dim MyFolderPath As String = IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "C:\Users\ICTCAdmin\Desktop\Board Meeting\Academic") 

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Try 

     For Each fullpath As String In IO.Directory.GetFiles(MyFolderPath) 


      ListBox1.Items.Add(IO.Path.GetFileName(fullpath)) 
     Next 
    Catch ex As Exception 
     MsgBox(ErrorToString) 
    End Try 
End Sub 

Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing 
    Form1.Show() 
End Sub 

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged 
    Dim fullpath As String = IO.Path.Combine(MyFolderPath, ListBox1.SelectedItem.ToString) 
    Process.Start(fullpath) 
End Sub 


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 

End Sub 
End Class 

Заранее спасибо.

+0

Привет Значит, вы хотите, чтобы закрыть Form1, а затем открыть Form2 is'nt его. если да, это поможет вам Dim box = New Form2(); box.ShowDialog() –

+0

Нет, я имею в виду, это вызов другой формы, когда вы нажимаете элемент в списке. Эта форма содержит встроенный PDF-ридер, и именно здесь я хочу, чтобы файл был открыт. Прямо сейчас, когда вы нажимаете элемент в списке, открывается фактический файл. –

+0

Итак, у вас есть что-то, что вы хотите сделать, и у вас есть код. В чем вопрос? – Blackwood

ответ

0

В вашей второй форме создать Friend свойство, как это в верхней части окна

Public Class frmWhateverYourNewFormIsCalled 
    Friend Property filepath As String 

кода дочерней формы в вашем вызывающем виде редактировать свойство listbox1_SelectedIndexChanged этой

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged 
    Dim fullpath As String = IO.Path.Combine(MyFolderPath, ListBox1.SelectedItem.ToString) 
    dim childForm as new frmWhateverYourNextFormIsCalled 
      childForm.filepath = "" 
    childForm.Show() 
End Sub 

В вашем ребенке form добавьте код, чтобы открыть файлPath в встроенном PDF-ридере. Вероятно, в обработчике событий Shown. Не обработчик события загрузки.

Для просмотра документа в программе это могло бы помочь Displaying a PDF in a control in Visual Basic 2010

+0

Большое спасибо Дэвиду. Я попробую. –

+0

Привет, Если кто-то отвечает за вас, нажмите на галочку рядом с ним. - Я не говорю, что это должно быть мое. Это помогает другим пользователям, которые ищут решения. Они могут видеть, что ответ на вопрос принят и может работать на них. –

+0

Извините, я новичок здесь. Сделал спасибо, он работает. :) –

Смежные вопросы