MarcosMTS 1 Denunciar post Postado Abril 6, 2015 Ola, Ja pesquisei bastante sobre como mudar a cor de fundo de um item selecionado na listview que fica só um cinza bem fraco, mas só encontrei um monte de gambiarra e codigos complicados... Alguem tem uma dica pra me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Dan Borges 26 Denunciar post Postado Abril 6, 2015 A propriedade BackColor não funciona? https://msdn.microsoft.com/en-us/library/system.windows.forms.listviewitem.backcolor%28v=vs.110%29.aspx Compartilhar este post Link para o post Compartilhar em outros sites
MarcosMTS 1 Denunciar post Postado Abril 6, 2015 Não é isso amigo, esse teu exemplo é a cor de fundo da listview, eu queria mudar a cor de fundo da linha selecionada por exemplo a linha em azul como a foto abaixo: Eu coloquei a propriedade HideSelection como false para manter o item selecionado visivel porem fica só com um cinza muito fraco! Compartilhar este post Link para o post Compartilhar em outros sites
Dan Borges 26 Denunciar post Postado Abril 7, 2015 Olá. Então, mas você tentou usar a propriedade BackColor do ListViewItem? Ela muda a cor do item, não da ListView Inteira, veja, fiz aqui no meu pc rapidinho. //Quando o item receber o focus fica vermelho listView1.FullRowSelect = true; listView1.FocusedItem.BackColor = Color.Red; A única coisa que não consegui mudar foi a cor do clique, parece ser padrão do sistema. Compartilhar este post Link para o post Compartilhar em outros sites
MarcosMTS 1 Denunciar post Postado Abril 7, 2015 Não funcionou, na verdade ao adicionar a linha: listViewTurmas.FocusedItem.BackColor = Color.Red; ele não exibe nada na listview, parece que trava o codigo, simplesmente para de executar o codigo nessa linha e nao exibe erro, e caso eu coloque essa linha apos o foreach ou em qualquer lugar tambem trava e não muda a cor, euja tinha testado isso! A linha fica em azul ao clicar mas quando clico fora da listview tiro o foco eu acho.. a linha fica cinza, gostaria de trocar esse cinza! listViewTurmas.View = View.Details; listViewTurmas.Columns.Add("Turma:"); listViewTurmas.Columns.Add("Código:"); listViewTurmas.Columns[0].Width = 160; listViewTurmas.Items.Clear(); listViewTurmas.FullRowSelect = true; // o codigo para de executar aqui listViewTurmas.FocusedItem.BackColor = Color.Red; turmas tur = new turmas(); DataTable dados_turmas = tur.recuperarTodos(); foreach (DataRow row in dados_turmas.Rows) { ListViewItem item = new ListViewItem(row["nome_turma"].ToString()); item.SubItems.Add(row["codigo_turma"].ToString()); listViewTurmas.Items.Add(item); } Compartilhar este post Link para o post Compartilhar em outros sites
Dan Borges 26 Denunciar post Postado Abril 7, 2015 Você está chamando esse código em qual evento do seu listViewTurmas? Porque eu fiz isso no evento Click, depois de a lista ser preenchida e funcionou sem erros: private void listViewTurmas_Click(object sender, EventArgs e) { listViewTurmas.FocusedItem.BackColor = Color.Red; } Toda as linhas que cliquei ficaram vermelhas, mesmo clicando em outro lugar. Talvez eu não tenha entendido sua dúvida. É isso que você deseja, não? Que quando clicar numa linha ela mude de cor. Compartilhar este post Link para o post Compartilhar em outros sites
MarcosMTS 1 Denunciar post Postado Abril 7, 2015 To chamando o codigo no _Load do form, testei o "listViewTurmas.FocusedItem.BackColor = Color.Red;" no click tambem agora e funcionou como voce falou acima, mas eu gostaria que apenas a ultima linha clicada ficasse vermelha não as anteriores que eu cliquei! Compartilhar este post Link para o post Compartilhar em outros sites
Dan Borges 26 Denunciar post Postado Abril 7, 2015 Ainda no evento click, antes do código que você usa a propriedade "FocusedItem", faça um laço for ou foreach em busca de todos os itens e apague a cor de fundo. Talvez funcione. Compartilhar este post Link para o post Compartilhar em outros sites
MarcosMTS 1 Denunciar post Postado Abril 7, 2015 Deu certo agora! :joia:Obrigado pela ajuda!Ficou assim: foreach (ListViewItem item in listViewTurmas.Items) { item.BackColor = Color.White; item.ForeColor = Color.Black; } listViewTurmas.FocusedItem.BackColor = Color.SteelBlue; listViewTurmas.FocusedItem.ForeColor = Color.White; Compartilhar este post Link para o post Compartilhar em outros sites