Ir ao conteúdo
  • Cadastre-se

CheckBox com Datagrid em C#


maonegra16

Posts recomendados

Bom dia Pessoal!

Gostaria muito de uma ajuda,

estou iniciando no desenvolvimento e estou fazendo um "projeto" um data grid que me lista algumas proc's, na frente das mesmas à um ChackBox quando marcado ele manda o ID da proc para um arrayList, até ai tudo bem, gostaria de fazer assim, quando desmarcado ele retira o mesmo id do arrayList ...

se poderem me ajudar agradeceria MuitO!!!

abaixo segue um pedaço do código que eu fiz ...

private void dgv_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 0)
{
if (e.RowIndex != -1)
{
String idProc = dgv.Rows[e.RowIndex].Cells[1].Value.ToString();
lista.Add(idProc);
}
}
}

Obrigado desde jáh!

Link para o comentário
Compartilhar em outros sites

deixa eu ver se eu entendi... você quer que quando a pessoa "selecione" um proc o id va para um array list... e quando a pessoa desmarca ele saia... correto?!??

(assumindo que eu entendi:

porque você nao faz quando o cara aperta ok?!?! faz u loop que checa todos os checkbox e partir dae você pega todos os marcados...

agora se você quer fazer em tempo real: trabalhe com o evento "CheckedChange"... considerando que todo IDPROC é unico você pode indexar por ele... e considerando que manda so o ID (no caso um int) você pode utilizar o Remove(id_a_ser_retirado)

Link para o comentário
Compartilhar em outros sites

na minha opinião um modo pratico de se fazer e usando DataGridViewCellEventArgs... ele te fornece varias informações uteis sobre qual e onde esta a CELL que foi marcada, e qual tipo de marca foi (check ou uncheck)

na verdade na verdade mesmo eu se fosse você criaria um objeto a partir do DataGridViewCellEventArgs... faz muito mais sentido do que so guardar um inteiro...

Link para o comentário
Compartilhar em outros sites

ahuahauhahauahuahu

o problema de se usar o evento click... e que o codigo tem que ser o mesmo tanto para inserir quanto pra retirar... mas ja q você ta com dificuldades cria uma rotina que varre o arraylist buscando pelo ID e retorna Boolean... ai no evento select você coloca

if (achou(id))

retira(id)

else

insere(id)

Link para o comentário
Compartilhar em outros sites

Cara Consegui!

AEuAHEuhAe

Nem sei seestá correto e tal mais Deu Certoo! uaehuaheuahe

da uma olhada no código :

private void btnGerarScripts_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dgv.Rows)
{
var Srows = Convert.ToString(row);

Int32 rows;
String nomProc = "";
String conteudo = Srows;
String IniWeb = "DataGridViewRow { Index=";
String FimWeb = "}";

rows = Convert.ToInt32(Procurar(IniWeb, FimWeb, conteudo));

if (dgv.Rows[rows].Cells[2].Value != null)
{
nomProc = dgv.Rows[rows].Cells[2].Value.ToString();
}

if (Convert.ToInt32(dgv.Rows[rows].Cells[0].Value).Equals(1))
{
Int32 idProc = Convert.ToInt32(dgv.Rows[rows].Cells[1].Value);
lista.Add(idProc);

dpa = new SqlDataAdapter("INSERT INTO tb_texto_procedure ( id, nome_proc ) VALUES (" + idProc + ",'" + nomProc + "')", conn);
dpa.Fill(dts);
}
}

"rows = Convert.ToInt32(Procurar(IniWeb, FimWeb, conteudo));" Nesta parte do código ele "recorta" o "row" e me retorna só o valor da linha ...

Bom ... deu certo sem problemas!

valeu!

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...