Usuário com melhor resposta
Mudar cor de fundo do TextBox ao receber valores determinados

Pergunta
-
Boa tarde amigos.
Estou precisando alterar a cor de fundo de um textbox ao receber o valor EM DIA e VENCIDO que é retornado do banco de dados por linha de código.
tentei alguns métodos e não consegui.
Tentei com esse codigo aqui mas nao consigo finalizar.
this.status_CalibracaoTextBox = " Em dia";
this.status_CalibracaoTextBox.BackColor = Color.AliceBlue;
Respostas
-
Boa tarde Philipe,
é só atribuir o resultado do seu campo do banco de dados à uma variável do tipo string ou então se o campo já retorna uma string, você pode verificar diretamente nela.
Exemplo:
if(variavel == "Em dia")//Variável que você atribuiu o valor, ou trocar pelo retorno do banco this.status_CalibracaoTextBox.BackColor = Color.AliceBlue; else this.status_CalibracaoTextBox.BackColor = Color.Red;
Abraços.
- Marcado como Resposta Thales F Quintas terça-feira, 24 de maio de 2016 13:45
Todas as Respostas
-
Philipe, bom dia.
EM DIA E VENCIDO são strings vindas do seu banco ?
se sim, vc poderia joga-las em uma variavel e fazer a consulta assim.
string VariavelBanco = campo do banco;
string A = "EM DIA";
string B = "VENCIDO";
string C = ""; // vazio ou algum outro texto
if( A == VariavelBanco )
{ this.status_CalibracaoTextBox.BackColor = Color.AliceBlue; }
else if( B == VariavelBanco)
{this.status_CalibracaoTextBox.BackColor = Color.Red}
else if ( C == VariavelBanco)
{this.status_CalibracaoTextBox.BackColor = Color.Blue;}
Espero que te ajude.
Att, Wsti.
-
Boa tarde Philipe,
é só atribuir o resultado do seu campo do banco de dados à uma variável do tipo string ou então se o campo já retorna uma string, você pode verificar diretamente nela.
Exemplo:
if(variavel == "Em dia")//Variável que você atribuiu o valor, ou trocar pelo retorno do banco this.status_CalibracaoTextBox.BackColor = Color.AliceBlue; else this.status_CalibracaoTextBox.BackColor = Color.Red;
Abraços.
- Marcado como Resposta Thales F Quintas terça-feira, 24 de maio de 2016 13:45
-
Refiz uma parte do Form. Vou usar uma listview para exibir os valores do banco de dados. Utilizei comandos para selecionar os dados e inserir nessa listView. Vou precisa alterar a cor da celula dessa list view que constar os valores EM DIA e VENCIDO. Sei que a datagridView tem o comando CellStyle que faz isso. Mas e para a listView, qual comando faria isso ?
Segue o código que faz o select no banco e insere na listView.
O que precisaria acrescentar nesse codigo para que ele identifique o valor da celula e modifique a cor da mesma ?
private void Consultar() { try { //Instancio o DataTable e TableAdapter de Clientes MySqlConnection con = new MySqlConnection(ConfigurationManager.ConnectionStrings["MySQLCon"].ToString()); //Verifico qual RadioButton o usuário checou e se o txtConsulta não está vazio para chamar o respectivo método if (rbtDescricao.Checked && !String.IsNullOrEmpty(txtConsulta.Text)) { //Preencho o TableAdapter com o método FillByNome, passando o DataTable e o txtConsulta como parâmetros string strConn = "SELECT * FROM tb_instrumento WHERE (descricao LIKE '" + txtConsulta.Text + "%')"; MySqlCommand cmd = new MySqlCommand(strConn, con); con.Open(); //Limpo os dados do meu ListView lsvDados.Items.Clear(); //Uso o laço foreach para percorrer as linhas do ClientesDataTable e carregá-las em meu ListView reader = cmd.ExecuteReader(); while (reader.Read()) { //Instancio a classe ListViewItem e vou adicionando o item e subitens ListViewItem objListViewItem = new ListViewItem(); objListViewItem.Text = reader[0].ToString(); objListViewItem.SubItems.Add(reader[1].ToString()); objListViewItem.SubItems.Add(reader[2].ToString()); objListViewItem.SubItems.Add(reader[3].ToString()); objListViewItem.SubItems.Add(reader[4].ToString()); objListViewItem.SubItems.Add(reader[5].ToString()); objListViewItem.SubItems.Add(reader[6].ToString()); objListViewItem.SubItems.Add(reader[7].ToString()); objListViewItem.SubItems.Add(reader[8].ToString()); //No final adiciono os itens em meu ListView, passando como parâmetro o objListViewItem carregado lsvDados.Items.Add(objListViewItem); } reader.Close(); }
-
Consegui avançar, mas agora esta colorindo toda minha list view.
O argumento nao esta correto
//Instancio a classe ListViewItem e vou adicionando o item e subitens ListViewItem objListViewItem = new ListViewItem(); objListViewItem.Text = reader[0].ToString(); objListViewItem.SubItems.Add(reader[1].ToString()); objListViewItem.SubItems.Add(reader[2].ToString()); objListViewItem.SubItems.Add(reader[3].ToString()); objListViewItem.SubItems.Add(reader[4].ToString()); objListViewItem.SubItems.Add(reader[5].ToString()); objListViewItem.SubItems.Add(reader[6].ToString()); objListViewItem.SubItems.Add(reader[7].ToString()); objListViewItem.SubItems.Add(reader[8].ToString()); if (objListViewItem.SubItems[lsvDados.FocusedItem.Index].(reader[8] == "Em dia"))//Variável que você atribuiu o valor, ou trocar pelo retorno do banco this.lsvDados.Items[lsvDados.FocusedItem.Index].SubItems[8].BackColor = Color.Green; else this.lsvDados.Items[lsvDados.FocusedItem.Index].SubItems[8].BackColor = Color.Red; //No final adiciono os itens em meu ListView, passando como parâmetro o objListViewItem carregado lsvDados.Items.Add(objListViewItem);
-
-
-
reader = cmd.ExecuteReader(); while (reader.Read()) foreach (ListViewItem lvw in lsvDados.Items) { if (lvw.SubItems[8].ToString() == "Vencida") { lvw.BackColor = Color.Red; { //Instancio a classe ListViewItem e vou adicionando o item e subitens ListViewItem objListViewItem = new ListViewItem(); objListViewItem.Text = reader[0].ToString(); objListViewItem.SubItems.Add(reader[1].ToString()); objListViewItem.SubItems.Add(reader[2].ToString()); objListViewItem.SubItems.Add(reader[3].ToString()); objListViewItem.SubItems.Add(reader[4].ToString()); objListViewItem.SubItems.Add(reader[5].ToString()); objListViewItem.SubItems.Add(reader[6].ToString()); objListViewItem.SubItems.Add(reader[7].ToString()); objListViewItem.SubItems.Add(reader[8].ToString()); lsvDados.Items.Add(objListViewItem); } reader.Close(); }
Inseri o foreach antes de carregar os dados no listview, mas mesmo assim não funcionou. Não deixa a celula colorida -
-
-
O codigo abaixo colore todas as linhas da listview.
if (lsvDados.SelectedItems.ToString() == "Vencida") this.lsvDados.SelectedItems[8].BackColor = Color.Red; else this.lsvDados.BackColor = Color.White;
Isso foi o mais perto que consegui chegar de colorir a celula