Jump to content

Recommended Posts

Posted

Olá

Necessitava de seleccionar uma linha na DataGridView1, mas depois de várias pesquisas não encontro a solução.

Se eu utilizar este código  DataGridView1.CurrentCell = DataGridView1.Item(1, 4) vai apontar para a linha 4 e só foca a célula.

Eu pretendo é seleccionar  a linha completa e que fique não como seleccionada mas sim como CurrentRow.

Pretendo utilizar isto para que depois de fazer o refresh à DataGridView1 esta se posicione na mesma linha em que estava.

Cumprimentos

Posted

não sei se é isto que pretendes mas para sempre que clicares numa célula, ficar seleccionado a respectiva linha completa, tens uma propriedade da DataGridView que se chama selectionMode. E ai escolhes a opção FullRowSelect

Posted

não sei se é isto que pretendes mas para sempre que clicares numa célula, ficar seleccionado a respectiva linha completa, tens uma propriedade da DataGridView que se chama selectionMode. E ai escolhes a opção FullRowSelect

O que eu pretendo é mesmo seleccional uma linha por código  e que fique como default row.

Cumprimentos

Posted

Mas queres que, sempre que haja um click numa célula, automaticamente seleccione toda a linha, ou uma em especifico?

Por exemplo, quando faço um INSERT por código, o Datagrid vai colocar o focus na primeira linha, ou seja a primeira linha passa a ser a CurrentRow. Se eu guardar a posição onde estava o cursor do DataGrid antes do insert, posso no final do insert posicionar-me na mesma linha que estava antes.

Se eu utilizar

DataGridView1.CurrentCell = DataGridView1.Rows(linha).Cells(coluna)

, só me vai seleccionar a célula. Deve haver alguma forma de eu indicar uma linha para posicionar o cursor.

Cumprimentos

Posted

Depois de várias tentativas e pegando no código das vossas sempre preciosas ajudas, saíu isto que funciona. No entanto não sei se há outra forma mais simples de o fazer?

Dim Pos As Integer 'Posição destino

        'Guarda a linha actual onde me encontro
        Pos = DataGridView1.CurrentRow.Index


        'Aqui escrevo o meu código de Update ou Insert da tabela. (este códifo faz com que o cursor se posicione sempre no topo do datagridview)
        

        'Envia o cursor da tabela para a posição guardada
        DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
        DataGridView1.CurrentCell = DataGridView1.Item(0, Pos)
Posted

Para fazeres numa só linha contando que tens previamente a propriedade SelectionMode = FullRow

DataGridView1.CurrentCell = DataGridView1.Item(0, DataGridView1.Rows.GetLastRow(DataGridViewElementStates.Visible))

Knowledge to the masses


  • 14 years later...
Posted

Você pode configurar o FullRowSelect nas propriedades do grid de forma permanente ao invés de definir todas as vezes pelo código.

Você pode usar o comando Grid.Rows(indice).Selected = True também para definir a linha como secionada.

Se desejar pode selecionar mais de uma ou então utilize o comendo Grid.ClearSelection() antes de selecionar para garantir que apenas uma será selecionada.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.