koKaZz Posted April 14, 2012 at 07:25 PM Report #449205 Posted April 14, 2012 at 07:25 PM Boas 😕 Estou a fazer um programa em C# que preeche um DataGridView com uma tabela (socios) de uma bd acess, e no programa tenho uma textbox para escrever o numero de cada sócios para o caso de querer actualizar/remover dados. Uma imagem para ajudar a compreender: E para facilitar a utilzação do programa adicionei isto para escrever automaticamente na textbox quando seleciono um socio:     private void dgvDados_CellClick(object sender, DataGridViewCellEventArgs e)     {       textBox_Apa_Mod.Text = dgvDados.Rows[dgvDados.SelectedCells[0].RowIndex].Cells[0].FormattedValue.ToString();     } (O zero é porque primeiro campo de cada linha é o correspondente ao Nº de Sócio) Agora o que eu presisava de ajuda era como fazer o inverso, ou seja se escrever na textbox para ficar automaticamente selecionado na DataGridView, alguem sabe? Cumps!
petvetbr Posted April 14, 2012 at 08:08 PM Report #449208 Posted April 14, 2012 at 08:08 PM Você pode fazer isto de várias formas, a mais direta seria a seguinte: 1) Percorrer todas as linhas do DataGridView, e ver se o código dela é igual ao que o usuário entrou no textBox 2) Se for, selecionar a coluna, caso contrário não selecionar ela (este último pode parecer redundante, mas se o usuário já tiver selecionado uma, garante que esta seja deselecionada para não ficar com 2 linhas selecionadas ao mesmo tempo) ficaria algo +- assim: for(int i=0; i< dgvDados.Rows.Count;i++) {    bool codigoEncontrado=dgvDados.Rows[i][0].ToString().Equals(textBox_Apa_Mod.Text);      dgvDados.SetSelectedRowCore(i,encontrado) } Fernando Lage Bastos - MCP/MCTS/MCPD
koKaZz Posted April 14, 2012 at 09:34 PM Author Report #449218 Posted April 14, 2012 at 09:34 PM Boas, Obrigao pela ajuda, acabou por ficar assim:     private void textBox_Apa_Mod_TextChanged(object sender, EventArgs e)     {       for (int i = 0; i < dgvDados.Rows.Count; i++)       {         if (!dgvDados.Rows.IsNewRow)         {           if (dgvDados[0, i].Value.ToString() == textBox_Apa_Mod.Text)             dgvDados.Rows.Selected = true;         }       }     } EDIT: em relacao ao não deixar selecionar 2 linhas, já tinha isto: this.dgvDados.MultiSelect = false; Cumprimentos ?
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now