none
CheckListBox RRS feed

  • Pergunta

  • Boa tarde pessoal.

    Estou povoando um checkedListBox com arquivos vindos de um determinado diretório.  O CheckedListBox está sendo povoado do jeito que eu quero. Quando o CheckedListBox é povoado ele me traz a caixa de marcação e o endereço do arquivo. Nesse momento eu marco os arquivos que eu quero imprimir. Como eu faço para pegar apenas o endereço que está no checkedListBox e colocá-lo em uma variável. Outra coisa Eu gostaria de imprimir apenas os arquivos que eu marquei, como faço? 

    Aqui eu estou povoando o meu CheckedListBox

            private void btnSelecionaCte5_Click(object sender, EventArgs e)
            {
    
                OpenFileDialog ofd1 = new OpenFileDialog();
    
                //define as propriedades do controle 
                //OpenFileDialog
                ofd1.Multiselect = false;
                ofd1.Title = "Selecionar XML";
                ofd1.InitialDirectory = @"C:\GLSISTEM\GERADOS\";
                //filtra para exibir somente arquivos XML
                ofd1.Filter = "Images (*.XML)|*.XML|" + "All files (*.*)|*.*";
                ofd1.CheckFileExists = true;
                ofd1.CheckPathExists = true;
                ofd1.FilterIndex = 2;
                ofd1.RestoreDirectory = true;
                ofd1.ReadOnlyChecked = false;
                ofd1.ShowReadOnly = false;
                ofd1.Multiselect = true; // Colocar MultiSelect
    
                DialogResult dr = ofd1.ShowDialog();
                if (dr == System.Windows.Forms.DialogResult.OK)
                {
                    // Le os arquivos selecionados 
                    foreach (String arquivo in ofd1.FileNames)
                    {
                        cLBCte5.Items.Add(arquivo);
                    }
                }
             }
    
    Garibaldo


    quinta-feira, 2 de julho de 2015 16:23

Respostas

  • Olá Garibaldo, o código abaixo passa em todos os items marcados e inserir eles em uma lista de strings, depois disso você manipula os items marcadas como você desejar.

    List<string> itemsMarcados = new List<string>();
    
                foreach(var itemMarcado in this.checkedListBox1.CheckedItems)
                {
                    itemsMarcados.Add(itemMarcado.ToString());
                }

    Caso você queira que todos os items marcados fiquem em uma variável para imprimir todos de uma vez, você pode usar o StringBuilder.

    StringBuilder sb = new StringBuilder();
    
                foreach(var itemMarcado in this.checkedListBox1.CheckedItems)
                {
                    sb.AppendLine(itemMarcado.ToString());
                }
    
                MessageBox.Show("Os items marcados são: " + sb.ToString());





    quinta-feira, 2 de julho de 2015 17:39