【问题标题】:Open another form when clicking an item in ListBox VB.net单击 ListBox VB.net 中的项目时打开另一个表单
【发布时间】:2016-01-22 03:02:18
【问题描述】:

我是一名网络管理员,任务是建立无纸化会议系统。所以现在我将 VB.net 作为我的平台。我的目标是使用文件夹中的项目的文件名填充列表框,它主要是 PDF 文件。所以我已经实现了这个目标,当我单击列表框中的项目时,文件夹中的文件就会打开。我想要的是,如果我单击列表框中的一个项目,将显示另一个表单。此表单有一个嵌入式 pdf 阅读器和一个用于 cmets 的文本框。文本框将保存在另一个文件夹内的 .txt 文件中。这是我的代码

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

提前谢谢你。

【问题讨论】:

  • 您好,您的意思是您要关闭 Form1,然后打开 Form2,不是吗。如果是,它会帮助你 Dim box = New Form2(); box.ShowDialog()
  • 不,我的意思是当您单击列表框中的项目时调用另一个表单。此表单中有一个嵌入式 PDF 阅读器,这是我想要打开文件的地方。现在,当您单击列表框中的项目时,实际文件将打开。
  • 所以你有你想做的事情,你有一些代码。问题是什么?
  • 您必须提供以另一种形式编写的代码,即带有PDF阅读器的表单。
  • 每次单击列表框中的项目时如何调用另一个表单。

标签: vb.net pdf listbox


【解决方案1】:

在您的第二个表单中,在子表单的代码窗口顶部创建一个像这样的 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

在您的子表单中添加代码以在嵌入式 pdf 阅读器中打开 filePath。可能在 Shown 事件处理程序中。不是 Load 事件处理程序。

要在您的程序中查看 pdf,这可能会有所帮助 Displaying a PDF in a control in Visual Basic 2010

【讨论】:

  • 非常感谢大卫。我试试看。
  • 您好,如果有人的回答对您有用,请单击它旁边的勾号。 - 我不是说它应该是我的 - 它可以帮助其他正在寻找解决方案的用户。他们可以看到某个问题的答案已被接受并且可能对他们有用。
猜你喜欢
  • 1970-01-01
  • 2020-08-04
  • 1970-01-01
  • 2017-08-07
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多