Usuário com melhor resposta
Evento no listview para habilitar e desabilitar Buttun.

Pergunta
-
Olá Pessoal.
Estou querendo ao marca um checkbox que esta no listview ele habilite e desabilite alguns buttuns, mas só esta acontecendo a parti do segundo registro o primeiro ele não executa a ação.
Coloquei o codigo abaixo no evento click do listview.
for (int i = 0; i < ls.Items.Count; i++)
{
if (ls.Items[i].Checked == true & ls.Items[i].Text != "")
{ btcienciaoperacao.Enabled = true; }
else { btcienciaoperacao.Enabled = false; }
}
- Editado Visual Studio 2010 salvando mp3 na base mysql segunda-feira, 8 de junho de 2015 13:12
Respostas
-
Tenta fazer o seguinte, assine o evento ItemChecked do ListView.
public Form1() { InitializeComponent(); ListView ls = new ListView(); ls.ItemChecked +=ls_ItemChecked; } void ls_ItemChecked(object sender, ItemCheckedEventArgs e) { var listViewItem = e.Item; if (listViewItem.Checked == true & listViewItem.Text != "") { btcienciaoperacao.Enabled = true; } else { btcienciaoperacao.Enabled = false; } }
Abraço!- Marcado como Resposta Visual Studio 2010 salvando mp3 na base mysql segunda-feira, 8 de junho de 2015 14:14
Todas as Respostas
-
-
-
Tenta fazer o seguinte, assine o evento ItemChecked do ListView.
public Form1() { InitializeComponent(); ListView ls = new ListView(); ls.ItemChecked +=ls_ItemChecked; } void ls_ItemChecked(object sender, ItemCheckedEventArgs e) { var listViewItem = e.Item; if (listViewItem.Checked == true & listViewItem.Text != "") { btcienciaoperacao.Enabled = true; } else { btcienciaoperacao.Enabled = false; } }
Abraço!- Marcado como Resposta Visual Studio 2010 salvando mp3 na base mysql segunda-feira, 8 de junho de 2015 14:14
-
Como conhecimento nunca é demais, gostaria de dar duas dicas.
1) No trecho de código abaixo, tu poderia simplificar o if.
if (listViewItem.Checked == true && listViewItem.Text != "")
Poderia ser reescrito da seguinte maneira.
if (listViewItem.Checked && listViewItem.Text != "")
Como a propriedade Checked retorna um bool, não tem a necessidade de fazer a verificação "==true" dentro do if.
2) O trecho abaixo poderia ser alterado para uma linha.
if (listViewItem.Checked == true && listViewItem.Text != "") { btcienciaoperacao.Enabled = true; } else { btcienciaoperacao.Enabled = false; }
Simplificando um pouco o código
btcienciaoperacao.Enabled = listViewItem.Checked && listViewItem.Text != "";
Ao invés de analisar as condições e caso seja true setar o Enabled para true, tu pode fazer isso atribuindo o valor de retorno das expressões, pois ele vai retornar true se as duas expressões forem verdadeiras ou falso caso sejam falsas, o código simplificado faz exatamente a mesma coisa, só que um pouco mais legível, pelo menos para mim.
Abraço.
- Editado Bruno Maschio Joaquim segunda-feira, 8 de junho de 2015 14:55