metaclay Posted October 24, 2009 at 02:03 PM Report Share #293163 Posted October 24, 2009 at 02:03 PM Boas. Estou a desenvolver uma aplicação em que o objectivo é carregar os ficheiros duma pasta à escolha para uma listbox para que possa imprimir o item selecionado dessa listbox. O problema que estou a confrontar é a básica propriedade da seleçao do item. Em suma, quero imprimir o item selecionado da listbox mas nao sei qual é a propriedade para selecionar o item que quero. Código que tenho até agora: - Carregamento dos documentos da pasta Private Sub btn_carregardados_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_carregar.Click Dim dir As New IO.DirectoryInfo("c:\dossier") Label1.Text = dir.ToString Dim files As IO.FileInfo() = dir.GetFiles("*.txt") Dim fileName As IO.FileInfo For Each fileName In files ListBox1.Items.Add(fileName.Name) Next End Sub - Parte da impressao Dim i As Integer For i = 1 To ListBox1.Items.Count ' Percorrer todos os items' If ListBox1.Items(i).Checked = True Then 'Aqui é a parte que quero saber qual a propriedade para trabalhar com o item selecionado ' PrintDocument1.Print() End If Next Aguardo ajuda Link to comment Share on other sites More sharing options...
FreiNando Posted October 24, 2009 at 03:26 PM Report Share #293179 Posted October 24, 2009 at 03:26 PM Para obteres o Indice do Item selecionado não carece cclo de pequisa, usa a propriedade SelectedIndex Convém saber que o 1º item =0 e o último é [items.Count - 1, e para obter o valor do item Items(Index) A ListBox só permite selecionar um item de cada vez, já para selecionar vários usa a CheckedListBox e para mais que uma coluna existe a ListView. O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles Link to comment Share on other sites More sharing options...
pmaster Posted October 24, 2009 at 07:23 PM Report Share #293208 Posted October 24, 2009 at 07:23 PM Não entendi bem o problema mas ve se isto te ajuda. If ListBox1.Items(i).Checked = True Then 'Aqui é a parte que quero saber qual a propriedade para trabalhar com o item selecionado ' ListBox1.Items.Item(ListBox1.SelectedIndex) End If Link to comment Share on other sites More sharing options...
Joca Posted October 24, 2009 at 07:46 PM Report Share #293217 Posted October 24, 2009 at 07:46 PM O problema que estou a confrontar é a básica propriedade da seleçao do item. Em suma, quero imprimir o item selecionado da listbox mas nao sei qual é a propriedade para selecionar o item que quero. Para seleccionar e, exibir o nome do item seleccionado, pode-se fazer algo do género: Private Sub btnImprimir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnImprimir.Click MsgBox("Seleccionou o item: " & ListBox1.SelectedItem) End Sub Link to comment Share on other sites More sharing options...
metaclay Posted October 26, 2009 at 03:14 PM Author Report Share #293409 Posted October 26, 2009 at 03:14 PM Acho que vocês nao perceberam o que eu quero. Vou tentar explicar outra vez duma forma mais simplificada... Desde já, deixo um print screen da aplicação http://i37.tinypic.com/14bt0rr.jpg Portanto, o objectivo deste programa é: através do botão 'Imprimir', fazer a impressão, para a impressora predefenida da rede, do documento selecionado na listbox, consoante o nº de cópias que o utilizador colocar. O objecto a usar é o 'PrintDocument' . Como fazer isto? Espero que tenham percebido a minha ideia agora 👍 Link to comment Share on other sites More sharing options...
ribeiro55 Posted October 26, 2009 at 03:17 PM Report Share #293410 Posted October 26, 2009 at 03:17 PM Só lidas com TXT ? Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
metaclay Posted October 26, 2009 at 03:21 PM Author Report Share #293412 Posted October 26, 2009 at 03:21 PM Não, lido com .pdf e .log Link to comment Share on other sites More sharing options...
ribeiro55 Posted October 26, 2009 at 03:24 PM Report Share #293413 Posted October 26, 2009 at 03:24 PM Pergunto porque o "PrintDocument" não faz o que parece que julgas que faça. Não indicas um documento e imprimes. Com o printdocument tens de literalmente desenhar o documento. No caso dos TXT é simples, basta escrever linhas controlando os limites horizontais e o número de linhas por página. Quanto aos PDF, já tens mais voltinhas para dar. Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips" Link to comment Share on other sites More sharing options...
metaclay Posted October 26, 2009 at 03:27 PM Author Report Share #293414 Posted October 26, 2009 at 03:27 PM Então podes sugerir-me outro objecto que faça impressão de documentos? Eu só nao queria que aparecesse a janela de impressão quando carregasse em imprimir, mas que imprimisse directamente... Link to comment Share on other sites More sharing options...
Gooden Posted October 26, 2009 at 04:23 PM Report Share #293418 Posted October 26, 2009 at 04:23 PM Não precisas printdocument... Dim p As New System.Diagnostics.ProcessStartInfo() p.Verb = "print" p.WindowStyle = ProcessWindowStyle.Hidden p.FileName = "C:\a.txt" p.UseShellExecute = True System.Diagnostics.Process.Start (p) [code] Link to comment Share on other sites More sharing options...
metaclay Posted October 26, 2009 at 04:37 PM Author Report Share #293419 Posted October 26, 2009 at 04:37 PM Continua a não funcionar Gooden :\ btw, nao tenho de fazer um if para saber se o item da listbox está selecionado? Link to comment Share on other sites More sharing options...
Gooden Posted October 26, 2009 at 05:21 PM Report Share #293423 Posted October 26, 2009 at 05:21 PM metaclay tenta criar 1 ficheiro txt no c:\ com o nome a.txt e imprimir Link to comment Share on other sites More sharing options...
metaclay Posted October 26, 2009 at 05:34 PM Author Report Share #293426 Posted October 26, 2009 at 05:34 PM metaclay tenta criar 1 ficheiro txt no c:\ com o nome a.txt e imprimir Ja deu mas ainda não é exactamente o que quero fazer. Como faço para imprimir todos os ficheiros que acabem em ".txt" e que estejam na pasta "C:/dossier" ? Link to comment Share on other sites More sharing options...
Gooden Posted October 26, 2009 at 05:46 PM Report Share #293428 Posted October 26, 2009 at 05:46 PM Isso e simples como fazer panquecas 👍 If IO.Directory.Exists("c:\Dossier") Then Dim di As New IO.DirectoryInfo("C:\Dossier") Dim aryFi As IO.FileInfo() = di.GetFiles("*.txt") Dim fi As IO.FileInfo For Each fi In aryFi Dim p As New System.Diagnostics.ProcessStartInfo() p.Verb = "print" p.WindowStyle = ProcessWindowStyle.Hidden p.FileName = fi.FullName p.UseShellExecute = True System.Diagnostics.Process.Start(p) Next Else MsgBox("Pasta Não Existe") End If atenção se não existir pasta da erro... fiz uma verificação de pasta se necessário Link to comment Share on other sites More sharing options...
metaclay Posted October 26, 2009 at 05:52 PM Author Report Share #293430 Posted October 26, 2009 at 05:52 PM É isso mesmooo 👍 só falta mesmo uma coisa, quero que seja so impresso o ficheiro que tiver selecionado na listbox... Como fazer isso? :s Link to comment Share on other sites More sharing options...
Gooden Posted October 26, 2009 at 06:03 PM Report Share #293434 Posted October 26, 2009 at 06:03 PM Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ListBox1.Items.Add("a.txt") ListBox1.Items.Add("b.pdf") ListBox1.Items.Add("Exame.txt") End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If IO.Directory.Exists("c:\dossier") Then Dim strFileSize As String = "" Dim di As New IO.DirectoryInfo("C:\dossier") Dim aryFi As IO.FileInfo() = di.GetFiles(ListBox1.Text) Dim fi As IO.FileInfo For Each fi In aryFi Dim p As New System.Diagnostics.ProcessStartInfo() p.Verb = "print" p.WindowStyle = ProcessWindowStyle.Hidden p.FileName = fi.FullName p.UseShellExecute = True System.Diagnostics.Process.Start(p) Next Else MsgBox("Pasta Não Existe") End If End Sub isto??? Link to comment Share on other sites More sharing options...
metaclay Posted October 26, 2009 at 06:08 PM Author Report Share #293436 Posted October 26, 2009 at 06:08 PM Nao, os items da listbox sao adicionados por uma funçao que eu ja implementei: Private Sub btn_carregardados_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_carregar.Click Dim dir As New IO.DirectoryInfo("c:\dossier") Label1.Text = dir.ToString Dim files As IO.FileInfo() = dir.GetFiles("*.txt") Dim fileName As IO.FileInfo For Each fileName In files ListBox1.Items.Add(fileName.Name) Next End Sub Escolhendo um dos items, o conteudo do ficheiro que está descrito na listbox, será impresso... Link to comment Share on other sites More sharing options...
Gooden Posted October 26, 2009 at 06:12 PM Report Share #293437 Posted October 26, 2009 at 06:12 PM Eu adicioneis manualmente... mas e so fazeres 1 botão e inserires o código que fiz no buton click Link to comment Share on other sites More sharing options...
metaclay Posted October 26, 2009 at 06:15 PM Author Report Share #293439 Posted October 26, 2009 at 06:15 PM AFINAL já funciona 👍 diz-me só mais uma coisa, neste código: Dim dir As New IO.DirectoryInfo("c:\dossier") Label1.Text = dir.ToString Dim files As IO.FileInfo() = dir.GetFiles("*.txt") Dim fileName As IO.FileInfo For Each fileName In files ListBox1.Items.Add(fileName.Name) Next na linha de código: Dim files As IO.FileInfo() = dir.GetFiles("*.txt") sabes como é que adiciono mais extensões além do .txt? Link to comment Share on other sites More sharing options...
metaclay Posted October 26, 2009 at 06:22 PM Author Report Share #293441 Posted October 26, 2009 at 06:22 PM Afinal já nao preciso da tua ajuda quanto aos outros tipos de ficheiro ;D Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now