Usuário com melhor resposta
Duvida em coluna CheckBox em datagrid c#

Pergunta
-
Boa tarde,
Tenho um datagrid q ele tem uma coluna CheckBox.
Fora isso também tenho um botão.
Porém eu só quero que o botão fique "Enabled = true" quando estiver alguma CheckBox marcado como true no datagrid casa não tenha nem um, o botão fique "Enabled = false".
Como faço isso? Alguém pode me ajudar?
Desde já agradeço pela atenção.
- Editado Marcos SJ terça-feira, 4 de agosto de 2015 15:59 Ortografia
Respostas
-
Para fazer isso você terá de varrer sua grid para verificar o valor do chexkBox veja aqui essa Thread
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
- Marcado como Resposta Rhael_Andrade terça-feira, 4 de agosto de 2015 19:32
- Não Marcado como Resposta Rhael_Andrade terça-feira, 4 de agosto de 2015 19:32
- Sugerido como Resposta Mr. GMSOFT quarta-feira, 5 de agosto de 2015 21:42
- Marcado como Resposta Marcos SJ quinta-feira, 24 de setembro de 2015 17:27
-
Nesse caso você quer que o botao fica Enable quando tiver ao menos um marcado correto, você pode colocar um contador enquanto esta verificando, e comparar DatagridView.Rows.Count==contador e vai incrementar a cada CheckBox que estiver marcado, e no else você so vai marcar Enable=false se o total de linhas da grid for diferente do contador ou seja não existem itens marcados
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
- Editado Mr. GMSOFT quarta-feira, 5 de agosto de 2015 21:42
- Marcado como Resposta Marcos SJ quinta-feira, 6 de agosto de 2015 12:40
Todas as Respostas
-
Para fazer isso você terá de varrer sua grid para verificar o valor do chexkBox veja aqui essa Thread
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
- Marcado como Resposta Rhael_Andrade terça-feira, 4 de agosto de 2015 19:32
- Não Marcado como Resposta Rhael_Andrade terça-feira, 4 de agosto de 2015 19:32
- Sugerido como Resposta Mr. GMSOFT quarta-feira, 5 de agosto de 2015 21:42
- Marcado como Resposta Marcos SJ quinta-feira, 24 de setembro de 2015 17:27
-
Mr.GMSORF
fiz da seguinte forma
private void datagrid_Ativ_CurrentCellChanged(object sender, EventArgs e) { if (datagrid_Ativ.CurrentCell is DataGridViewCheckBoxCell) { datagrid_Ativ.CommitEdit(DataGridViewDataErrorContexts.Commit); } } private void datagrid_Ativ_CellValidated(object sender, DataGridViewCellEventArgs e) { //Aqui eu coloquei a logica que eu queria, quando fosse marcado ou não. ex: if (Convert.ToBoolean(datagrid_Ativ.Rows[datagrid_Ativ.CurrentRow.Index].Cells[0].Value) == true) bt_Baixar_slecao.Enabled = true; // MessageBox.Show("marcado"); else bt_Baixar_slecao.Enabled = false; // MessageBox.Show("desmarcado"); }
porem se eu marcar 4 campos do datagrid o botão ficar "bt_Baixar_slecao.Enabled = true;" ate ai ta certo porem quando eu desmarco 1 campos da coluna era pra ele ficar ainda como "bt_Baixar_slecao.Enabled = true;" pq ainda teria 3 marcados só ficaria "bt_Baixar_slecao.Enabled = false;" quando estive-se apenas um.
o fazer pra q ele fique da forma q expliquei.
-
-
Olá Rhael_Andrade,
Tudo bem?
Poderia informar de maneira mais detalhada o que precisa fazer?
Atenciosamente
Marcos Roberto de Souza Junior
Esse conteúdo e 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 e 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.
-
tenho o datagrid q contem uma coluna DataGridViewCheckBoxColumn conforme a imagem abaixo
porem se vc observa tenho um botão "Baixa selecionadas" ou seja eu preciso verificar ao clicar na coluna DataGridViewCheckBoxColumn se tiver mais q 1 campo selecionado como true da coluna o botão fique como bt_Baixar_slecao.Enabled = true se for igual a 1 ou menor que 1 ele fique como bt_Baixar_slecao.Enabled = false.
-
Eu utilizo essa função:
public static bool isChecked(DataGridViewRow r, string strColuna) { DataGridViewCheckBoxCell oCell = r.Cells[strColuna] as DataGridViewCheckBoxCell; return (null != oCell && null != oCell.Value && true == (bool)oCell.Value); }
e para chamá-la pode ser em algum evento da linha do datagridView verificando linha a linha ou em um botão verificando todas as linhas:
foreach (DataGridViewRow r in seuDataGridView.Rows) { if (isChecked(r, "NOME_DA_SUA_checkBoxColumn")) { MessageBox.Show("A Linha " + r.Index + " Está Checada!"); } }
Natan
- Editado 'Natan Silva quarta-feira, 5 de agosto de 2015 20:27
-
estamos quase la
ex: vamos supor q temos 10 titulos ele tem q verificar se alguns dos 10 esta como true se tiver bt_Baixar_slecao.Enabled = true se não bt_Baixar_slecao.Enabled = false
da forma q esta ai ele percorre mais fikei meio confuso.
-
-
Nesse caso você quer que o botao fica Enable quando tiver ao menos um marcado correto, você pode colocar um contador enquanto esta verificando, e comparar DatagridView.Rows.Count==contador e vai incrementar a cada CheckBox que estiver marcado, e no else você so vai marcar Enable=false se o total de linhas da grid for diferente do contador ou seja não existem itens marcados
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
- Editado Mr. GMSOFT quarta-feira, 5 de agosto de 2015 21:42
- Marcado como Resposta Marcos SJ quinta-feira, 6 de agosto de 2015 12:40
-
Thread duplicada aqui veja a resposta
A vantagem de ser inteligente é que podemos fingir que somos imbecis enquanto ao contrario é completamente impossivel
- Editado Mr. GMSOFT quarta-feira, 5 de agosto de 2015 21:45 Thread Duplicada
-
Bom dia Mr. GMSOFT,
Muito obrigado pela colaboração no Fórum, não somente com o compartilhamento do seu conhecimento mas também no auxílio em deixar o Fórum mais organizado.
Atenciosamente
Marcos Roberto de Souza Junior
Esse conteúdo e 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 e 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.