Inquiridor
alterar a cor do item selecionado listbox

Pergunta
-
Opa.
Eu alterei as cores padrões do meu app, está tudo fixo. O problema é a listBox onde preciso que o usuário veja qual o item está selecionado. Estou com dificuldade de alterar a cor da seleção de um item no listbox.
Alguam dica?
valeu!!
- Movido Giovani CrModerator terça-feira, 29 de abril de 2014 19:42
Todas as Respostas
-
Boa tarde Cassio, o que você deseja é isso? se for siga passo a passo.
diga se deu certo ok?
você tem que fazer uma pequena alteração no método de " DrawItem " do ListBox, Instruções:
1- Alterar cor do texto de todos os itens
2- Inicie o Visual Studio e crie um novo projeto Visual Basic Windows Forms. Um novo formulário chamado " Form1 " abre na janela de edição .
3- Clique no botão " Visualizar" e depois clique em " caixa de ferramentas " para abrir caixa de ferramentas do Visual Studio.
4- clique duas vezes no controle " ListBox " . Lugares Visual Studio -lo no formulário e os nomes de " ListBox1 ".
5- Clique no botão " ListBox1 " control e pressione " F4 " para ver a janela Propriedades . Esta janela permite que você defina as propriedades de um controle, como cor e tamanho .
6- Clique na propriedade " ForeColor " . Uma seta drop-down aparece ao lado da propriedade. Clique a seta para exibir um menu de cor contendo guias. A aba "System" exibe cores do sistema Windows , o guia " Web" exibe a lista de cores da Web ; . E a guia "Custom" permite que você escolha sua própria cor a partir de uma grade de cores
7- Clique em um desses guias , clique na cor que você gostaria de usar para o texto de todos os itens de caixa de listagem .8- Clique no item " BackColor " na janela Propriedades para exibir sua seta drop-down . Clique que a seta para escolher uma cor , tal como descrito na etapa anterior . Visual Basic , em seguida, usa a cor que você selecionou como a cor de fundo para todos os itens de caixa de listagem . Vá para a próxima seção, se você quer mudar a cor de apenas o item ListBox selecionado.
Alterar cor do texto de um item selecionado
9- Clique duas vezes na forma de barra de título. O código para o método de "Load" do formulário é aberto e exibe um método vazio "Load"
colar o seguinte código antes da declaração de que o método " End Sub " : .
ListBox1 . Items.AddRange (New Object () { "Item 1", " item ", " item ", " item 4" })
ListBox1.DrawMode = DrawMode.OwnerDrawFixed
10- A primeira declaração adiciona itens para o ListBox . A próxima instrução define o modo de desenho do controle para " OwnerDrawFixed ". Utilize este modo quando você quiser substituir o modo de desenho padrão do Visual Basic para um controle
Cole o seguinte código após a declaração de "Sub End" do método de "Load" : .
Privada Sub ListBox1_DrawItem (sender As Object , _
ByVal e As System.Windows.Forms.DrawItemEventArgs ) _
alças ListBox1.DrawItem
e.DrawBackground () < br >
Dim pincel como pincel = Brushes.Black
Se ( e.State E DrawItemState.Selected = DrawItemState.Selected ) Então
escova = Brushes.Green
End If
e.Graphics.DrawString ( ListBox1.Items ( e.Index ) . ToString () ,
e.Font , escova, _
e.Bounds , StringFormat.GenericDefault )
End Sub
Este código substitui o método " DrawItem " do ListBox. O método " DrawItem " é executado a cada vez Visual Basic chama um item de ListBox no controle.
11- Localize a instrução que lê, " Dim pincel como pincel = Brushes.Black ". Esta linha de código cria uma variável " pincel " que mantém a cor do pincel de desenho padrão. Neste caso, que a cor é "Black ". Mude "Black " para a cor que você gostaria de usar para desenhar os itens de caixa de listagem não selecionados . Por exemplo, se você quer mudar a cor de item padrão para vermelho , substitua a instrução anterior com este :
Dim pincel como pincel = Brushes.Red
12- Localize a seguinte declaração no código : escova =Brushes.Green
Substituir " verde" com qualquer cor. Visual Basic , em seguida, usa essa cor para desenhar item selecionado da ListBox. A declaração final chama o método " DrawString " que atrai os itens de caixa de listagem .
13- Pressione " F5" para executar o programa . O formulário aparece e exibe a caixa de listagem e seus itens . Clique em qualquer item para selecioná-lo . Sua cor muda para a cor que você escolheu para o item selecionado . Todos os outros itens exibir a cor padrão.
-
-
Opa. Obrigado pelo retorno.
Entretanto estou fazendo isso no windows phone e não win forms. A ListBox do xaml não tem a propriedade DrawMode.
valeu!
Olá Cássio,
Você deve definir um Style personalizado para a propriedade ItemContainerStyle do ListBox.
Dê uma olhada neste tutorial para WPF e Expression Blend. É semelhante ao que você precisa fazer:
Herbert Lausmann
- Sugerido como Resposta Ricardo Barbosa Cortes terça-feira, 29 de abril de 2014 18:12
- Não Sugerido como Resposta Ricardo Barbosa Cortes terça-feira, 29 de abril de 2014 18:12
-
E ai Cassio, se a sugestao do Herbert funcionar, acho difícil não funcionar pois o cara é FERA, marque como resposta ok?
pois assim irá ajudar diversos usuários no futuro.
Abraço.
- Editado Ricardo Barbosa Cortes terça-feira, 29 de abril de 2014 18:18
-
Bom dia Cássio,
Vou mover sua pergunta ao fórum correto, pois a mesma se encontra atualmente no fórum de Windows Phone.
Att,
Giovani Cruzara – Microsoft Contingent Staff
Esse conteúdo é 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 é 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.