none
CheckedListBox: Salvar e Restaurar Itens e Valores. RRS feed

  • Pergunta

  • Pessoal, estou começando em C# e estou com uma dúvida com o componente CheckedListBox. Eu carrego uma lista nele onde o usuário poderá selecionar alguns itens. Depois disto, preciso salvar esta lista e o estado dos itens, se estão selecionados ou não no Settings do meu projeto, para quando o Form for aberto novamente, ele carregar esse CheckedListBox como estava antes, ou seja, com todos os itens e seus estados anteriores.

    Não sei como fazer isso, se teria como salvar por exemplo numa string "Maça:True; Pera:False; Abacate:True; etc" e depois carregar de novo tudo isso.


    A inteligência é inata, mas a sabedoria se aprende.

    terça-feira, 29 de setembro de 2015 15:56

Respostas

  • Consegui resolver da seguinte forma...

    Para salvar os itens checados:

    var indicesEnvio = cklist_Envio.CheckedItems.Cast<string>().ToArray();
    Properties.Settings.Default["vListaEnvio"] = string.Join(",", indicesEnvio);

    Para carregar de volta os itens:

    if (!string.IsNullOrEmpty(Properties.Settings.Default.vListaEnvio))
    {
            Properties.Settings.Default.vListaEnvio.Split(',').ToList().ForEach(item =>
        {
            var index = cklist_Envio.Items.IndexOf(item);
            cklist_Envio.SetItemChecked(index, true);
        });
    }



    A inteligência é inata, mas a sabedoria se aprende.

    • Marcado como Resposta Fernando Fonte sexta-feira, 9 de outubro de 2015 13:29
    sexta-feira, 9 de outubro de 2015 13:28

Todas as Respostas

  • Olá Fernando,

    Poderia postar o trecho de código com o qual está tendo problemas?

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 30 de setembro de 2015 15:28
  • Consegui resolver da seguinte forma...

    Para salvar os itens checados:

    var indicesEnvio = cklist_Envio.CheckedItems.Cast<string>().ToArray();
    Properties.Settings.Default["vListaEnvio"] = string.Join(",", indicesEnvio);

    Para carregar de volta os itens:

    if (!string.IsNullOrEmpty(Properties.Settings.Default.vListaEnvio))
    {
            Properties.Settings.Default.vListaEnvio.Split(',').ToList().ForEach(item =>
        {
            var index = cklist_Envio.Items.IndexOf(item);
            cklist_Envio.SetItemChecked(index, true);
        });
    }



    A inteligência é inata, mas a sabedoria se aprende.

    • Marcado como Resposta Fernando Fonte sexta-feira, 9 de outubro de 2015 13:29
    sexta-feira, 9 de outubro de 2015 13:28