Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, tenho um datagridview e uma função do tipo
carregaDados()
Esta função obtem um dataTable do meu DB e set o grid.dataSource = dataTable.
Porém, em derterminado ponto, preciso atualizar as informações exibidas no grid.
Se eu chamar novamente o carregaDados() o grid será atualizado, porém, a linha que estava selecionada será trocada, a ordenação que estava selecionada será trocada, o evento SelectionChanged será disparado, etc...
Eu gostaria de saber se existe alguma forma de apenas atualizar os dados do grid, sem fazer nada disso...
Ahhh, e sem guardar a linha selecionada para utilizar depois de recarregar os dados... ou coisas do tipo...
Alguém sabe se é possível?
Desde já obrigado.
Att.
lol...
O problema de fazer isso é que continuará disparando o evento SelectionChanged do datagridview :S
Gostaria de algo que atualiza-se sem trocar a seleção das linhas....
Use variáveis de controle, sete um boolean que cancela o evento selection changed através do próprio método.
No evento você faz a verificação
Se True então e.Cancel Else <evento>
Vou resolver da seguinte forma, criar uma Sub que realizar a leitura do banco para um DataTable e depois localizar linha a linha no grid e alterar o valor da célula. Desta forma não troco a linha selecionada, não disparo evento, não perco a ordenação.... Como não são muitos registros não terei problema de desempenho...
Muito obrigado.
Você quer apenas recarregar o datagrid? Existe o método Refresh(), porém ele zera tudo. Se você quiser manter a ordenação e também a linha selecionada eu sugiro que você busque o index e a ordenação e as guarde em variáveis para depois marcá-los novamente.