Usuário com melhor resposta
Listbox

Pergunta
-
Ai galera será que podem me ajudar?
Eu escrevo por exemplo em uma textbox um item e o adiciono para minha listbox, mas como faço pra verificar se o item ja existe na listbox, e se ja exite nao adicionar?
tentei com o indice mas vi que tava errado, pq eu to inserindo um texto e preciso compará-lo com o outro texto da listbox.
Valeu!!!
Respostas
-
Olá Kinti
Adicione o seguinte método para testar...
private void button1_Click(object sender, EventArgs e) { adicionarItem(textBox1.Text); } public string adicionarItem(string item) { if (item == "") return (""); if (listBox1.FindString (item, -1) < 0) { listBox1.Items.Add (item); return (""); } MessageBox.Show ("\"" + item + "\"Ja possui", "Dados duplicado"); return (item); }
Até a próxima...
- Marcado como Resposta Harley AraujoModerator quinta-feira, 24 de setembro de 2009 19:22
-
Você pode fazer assim:
private void button1_Click(object sender, EventArgs e) { List<object> objetosParaRemover = new List<object>(); foreach(object o in this.listBox1.Items) { if (!this.listBox2.Items.Contains(o.ToString())) { this.listBox2.Items.Add(o.ToString()); } else { objetosParaRemover.Add(o); } } foreach (object o in objetosParaRemover) { this.listBox1.Items.Remove(o.ToString()); } }
- Sugerido como Resposta Murilo Amaru Gomes quarta-feira, 23 de setembro de 2009 16:37
- Marcado como Resposta Harley AraujoModerator quinta-feira, 24 de setembro de 2009 19:22
-
Com for, fora isso com linq ou expressao lambda, com for fica assim, apesar de achar que fica mais confuso
private void button1_Click(object sender, EventArgs e) { List<object> objetosParaRemover = new List<object>(); for (int i = 0; i < this.listBox1.Items.Count; i++) { if (!this.listBox2.Items.Contains(this.listBox1.Items[i].ToString())) { this.listBox2.Items.Add(this.listBox1.Items[i].ToString()); } else { objetosParaRemover.Add(this.listBox1.Items[i].ToString()); } } for (int i = 0; i < objetosParaRemover.Count; i++ ) { this.listBox1.Items.Remove(objetosParaRemover[i].ToString()); } }
- Sugerido como Resposta Murilo Amaru Gomes quarta-feira, 23 de setembro de 2009 16:34
- Marcado como Resposta Harley AraujoModerator quinta-feira, 24 de setembro de 2009 19:22
Todas as Respostas
-
-
Olá Kinti
Adicione o seguinte método para testar...
private void button1_Click(object sender, EventArgs e) { adicionarItem(textBox1.Text); } public string adicionarItem(string item) { if (item == "") return (""); if (listBox1.FindString (item, -1) < 0) { listBox1.Items.Add (item); return (""); } MessageBox.Show ("\"" + item + "\"Ja possui", "Dados duplicado"); return (item); }
Até a próxima...
- Marcado como Resposta Harley AraujoModerator quinta-feira, 24 de setembro de 2009 19:22
-
Valeu pessoal... Funcionou o programa...
Agora, se puderem me ajudar com mais uma coisa eu agradeço.
Eu passo os itens de um listbox para outro atraves de um botao. Como faço pra verificar se um item da listbox1 ja existe no listbox2?
Aí se existir, apagar o item que ja existe na listbox1 e envia para a listbox2 os demais itens. -
Você pode fazer assim:
private void button1_Click(object sender, EventArgs e) { List<object> objetosParaRemover = new List<object>(); foreach(object o in this.listBox1.Items) { if (!this.listBox2.Items.Contains(o.ToString())) { this.listBox2.Items.Add(o.ToString()); } else { objetosParaRemover.Add(o); } } foreach (object o in objetosParaRemover) { this.listBox1.Items.Remove(o.ToString()); } }
- Sugerido como Resposta Murilo Amaru Gomes quarta-feira, 23 de setembro de 2009 16:37
- Marcado como Resposta Harley AraujoModerator quinta-feira, 24 de setembro de 2009 19:22
-
-
-
Com for, fora isso com linq ou expressao lambda, com for fica assim, apesar de achar que fica mais confuso
private void button1_Click(object sender, EventArgs e) { List<object> objetosParaRemover = new List<object>(); for (int i = 0; i < this.listBox1.Items.Count; i++) { if (!this.listBox2.Items.Contains(this.listBox1.Items[i].ToString())) { this.listBox2.Items.Add(this.listBox1.Items[i].ToString()); } else { objetosParaRemover.Add(this.listBox1.Items[i].ToString()); } } for (int i = 0; i < objetosParaRemover.Count; i++ ) { this.listBox1.Items.Remove(objetosParaRemover[i].ToString()); } }
- Sugerido como Resposta Murilo Amaru Gomes quarta-feira, 23 de setembro de 2009 16:34
- Marcado como Resposta Harley AraujoModerator quinta-feira, 24 de setembro de 2009 19:22
-