Pergunta

Na estrutura .NET, é possível definir alguns dos itens no CheckedListBox como "desmarcável"? Não quero permitir que o usuário verifique os mesmos itens novamente e adicione -os a outra lista existente.

Espero estar claro. Desde já, obrigado.

Foi útil?

Solução

Eu definiria esses itens como "indeterminados" no código e, em seguida, substituiria a propriedade "NewValue" do evento ItemCheck quando o usuário tenta verificar/desmarcar -os:

public Form1()
{
    InitializeComponent();
    checkedListBox1.Items.Add("Can't check me", CheckState.Indeterminate);
}

private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
    if (e.CurrentValue == CheckState.Indeterminate)
    {
        e.NewValue = CheckState.Indeterminate;
    }
}

O item "não pode me verificar" no CheckedListBox não pode ser modificado, porque toda vez que o usuário tenta verificar/desmarcar, o manipulador de eventos o altera de volta. Você nem vê a atualização da interface do usuário de acordo.

Outras dicas

O código de Matt é bom.

No entanto, por que ter um item na lista de marcação e não deixar ser selecionado?
Quero dizer, por que ter esse item na lista.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top