Cor de fundo Listbox

Tem como mudar a cor de fundo de um Listbox ?
No achei nenhuma propriedade que faa isso.

[quote=199902:@Cauby Osorio]Tem como mudar a cor de fundo de um Listbox ?
Não achei nenhuma propriedade que faça isso.[/quote]

Sim, facilmente. Você deve colocar seu código no evento CellBackgroundPaint da ListBox, como neste exemplo:

  If row Mod 2 = 0 Then
    g.ForeColor = &cECECEC00
    g.FillRect(0, 0, g.Width, g.Height)
  End If

Sempre usamos g, que é o objeto gráfico utilizado para manipular cores, linhas ou ícones na ListBox. Ele é recebido como parâmetro neste evento, no momento em que o sistema “desenha” cada linha, coluna e célula da sua listbox.

No exemplo acima, estou verificando se o número da linha recebido é divisível por 2 sem sobrar restos, ou seja, se é uma linha par, e não ímpar. Assim, mudo a cor linha sim, linha não, criando o famoso efeito “zebrado”. Se eu não fizer esta verificação, estarei mudando a cor de todas as linhas. Bem simples.

Com esta técnica, você pode verificar também se determinada linha e coluna (célula) tem algum valor específico, ou se um número é negativo, se um status é ativo ou inativo, e mudar a cor da célula para destacar estas situações.

Procure ver também na documentação, o evento CellTextPaint, que obviamente, trata da cor do texto…

Ah, outro detalhe. Talvez você já saiba, mas como fez esta pergunta, acredito que não tenha tido a chance de verificar. Para inserir aquele código de cor no código fonte, basta clicar com o botão direito, e escolher no menu a opção “Insert Color”, que então, a caixa de seleção de cores aparece, ficando bem mais fácil…

No sabia da opo insert Color.
O resto foi tudo legal.
Obrigado.