none
OpenFileDialog1 RRS feed

  • Pergunta

  • Boa tarde

    Tenho o seguinte codigo que me permite abrir pdf atraves do userform.

    Mas quando vou procurar o pdf ele permite-me procurar por todo o pc...Quero que so permita procurar numa determinada pasta, é possivel?

    Public Class Form7

    Private Sub AbrirExemploToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AbrirExemploToolStripMenuItem.Click
    OpenFileDialog1.ShowDialog()
    AxAcroPDF1.src = OpenFileDialog1.FileName
    End Sub

    Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
    Form2.Show()
    Me.Close()
    End Sub
    End Class
    segunda-feira, 25 de outubro de 2010 18:37

Respostas

  • Então faz assim:

    1 - Cria um DataGridView com 2 Colunas. colArquivo e colCaminho
    2 - Coloca as colunas como ReadOnly = True
    3 - Coloca o Código Abaixo no Evento Load do form ou onde quer que carregue:

        Dim di As New IO.DirectoryInfo("C:\PastaComOsArquivos")
        Dim aryFi As IO.FileInfo() = di.GetFiles("*.pdf")

        For Each fi As IO.FileInfo In aryFi
          DataGridView1.Rows.Add(fi.Name, fi.FullName)
        Next

    4 - No Evento CellDoubleClick do DataGridView coloca assim:

      Private Sub DataGridView1_CellDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
        If e.ColumnIndex = colArquivo.Index Then
          Dim info As New ProcessStartInfo(DataGridView1.CurrentRow.Cells(colCaminho.Index).Value.ToString)
          System.Diagnostics.Process.Start(info)
        End If
      End Sub

    Ai o Layout e essas coisas é só você fazer do jeito que quiser. Se quiser ocultar alguma coluna do grid ou mudar cor e essas coisas.


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form
    segunda-feira, 25 de outubro de 2010 23:17
  • Tira o ReadOnly da coluna que alterou para Combobox e no For para Adicionar os arquivos coloca assim:

        For Each fi As IO.FileInfo In aryFi
          colArquivo.Items.Add(fi.Name)
        Next

    colArquivo é a coluna que alterou para combobox.


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form
    terça-feira, 26 de outubro de 2010 20:49

Todas as Respostas

  • Para procurar em uma determinada pasta você poderia criar um form com um listbox ou datagridview e listar os arquivos da pasta filtrando pelo pdf. Segue exemplo:

      Dim strFileSize As String = ""
      Dim di As New IO.DirectoryInfo("C:\temp")
      Dim aryFi As IO.FileInfo() = di.GetFiles("*.pdf")
      Dim fi As IO.FileInfo
    
      For Each fi In aryFi
            'Aqui voce adiciona os itens
            strFileSize = (Math.Round(fi.Length / 1024)).ToString() Console.WriteLine("File Name: {0}", fi.Name) Console.WriteLine("File Full Name: {0}", fi.FullName) Console.WriteLine("File Size (KB): {0}", strFileSize ) Console.WriteLine("File Extension: {0}", fi.Extension) Console.WriteLine("Last Accessed: {0}", fi.LastAccessTime) Console.WriteLine("Read Only: {0}", (fi.Attributes.ReadOnly = True).ToString) Next

    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form
    segunda-feira, 25 de outubro de 2010 20:34
  • boas

    Estou a lembrar de um pequeno pormenor, ao escrever esse código estava  dando o caminho onde estavam os pdf ao utilizador e não queria isso.

     

    Existe forma de cada vez que adicionar um novo pdf  há pasta em rede no userform aparecerum link que ao clicar nele abra o pdf.

    ex:

    pdf1.pdf

    Link no userform com nome: pdf1.pdf

     

    segunda-feira, 25 de outubro de 2010 22:38
  • Bruno maestro obrigado pelo codigo amanh posto se resultou ,pois nao consigo testas agora.
    segunda-feira, 25 de outubro de 2010 22:39
  • Sim, você pode monitorar a pasta com o FileSystemWatcher e cada vez que for criado um novo arquivo pdf você pode adicionar ele há um datagridview ou o que prefirir. Abaixou um link de exemplo do FileSystemWatcher:

    http://www.macoratti.net/vbn5_fsw.htm


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form
    segunda-feira, 25 de outubro de 2010 22:45
  • MAs o FileSystemWatcherserver para ver os ficheiros numa determinada pasta e cria-los.

    O que pretendo é que num listbox apareca os nomes dos ficheiros pdf e ao clicar neles abra os respectivos. É isso que o seu codigo faz? nas tenho vb aqui...que ____

    segunda-feira, 25 de outubro de 2010 23:05
  • Então faz assim:

    1 - Cria um DataGridView com 2 Colunas. colArquivo e colCaminho
    2 - Coloca as colunas como ReadOnly = True
    3 - Coloca o Código Abaixo no Evento Load do form ou onde quer que carregue:

        Dim di As New IO.DirectoryInfo("C:\PastaComOsArquivos")
        Dim aryFi As IO.FileInfo() = di.GetFiles("*.pdf")

        For Each fi As IO.FileInfo In aryFi
          DataGridView1.Rows.Add(fi.Name, fi.FullName)
        Next

    4 - No Evento CellDoubleClick do DataGridView coloca assim:

      Private Sub DataGridView1_CellDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
        If e.ColumnIndex = colArquivo.Index Then
          Dim info As New ProcessStartInfo(DataGridView1.CurrentRow.Cells(colCaminho.Index).Value.ToString)
          System.Diagnostics.Process.Start(info)
        End If
      End Sub

    Ai o Layout e essas coisas é só você fazer do jeito que quiser. Se quiser ocultar alguma coluna do grid ou mudar cor e essas coisas.


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form
    segunda-feira, 25 de outubro de 2010 23:17
  • vou testar..mas so amanha :(

     

    Obrigado Bruno

    Depois posto resultado, fica atento;)

    segunda-feira, 25 de outubro de 2010 23:21
  • boas,

     

    Funcionou Bruno :)

    Uma questao, como posso alterar o datagridvies de textbox para combobox?

    Alterar em consigo mas da-me o seguinte erro no codigo:

    The following exception occured in the datagridview
    System.ArgumentException: datagridComboboxCell Value is not valid
    to Replace this default dialog please handle the dataerror event

    terça-feira, 26 de outubro de 2010 10:42
  • Tira o ReadOnly da coluna que alterou para Combobox e no For para Adicionar os arquivos coloca assim:

        For Each fi As IO.FileInfo In aryFi
          colArquivo.Items.Add(fi.Name)
        Next

    colArquivo é a coluna que alterou para combobox.


    Bruno Ferreira de Souza
    Analista Desenvolvedor .NET
    MCP - Windows Form
    terça-feira, 26 de outubro de 2010 20:49