Seabra Posted June 30, 2010 at 03:34 PM Report #337039 Posted June 30, 2010 at 03:34 PM 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
pmaster Posted June 30, 2010 at 03:38 PM Report #337042 Posted June 30, 2010 at 03:38 PM 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
Seabra Posted June 30, 2010 at 03:47 PM Author Report #337044 Posted June 30, 2010 at 03:47 PM 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
pmaster Posted June 30, 2010 at 03:55 PM Report #337045 Posted June 30, 2010 at 03:55 PM Com isto consegues seleccionar a linha que pretendes: DataGridView1.CurrentCell = DataGridView1.Rows(linha).Cells(coluna)
bioshock Posted June 30, 2010 at 07:53 PM Report #337088 Posted June 30, 2010 at 07:53 PM Mas queres que, sempre que haja um click numa célula, automaticamente seleccione toda a linha, ou uma em especifico?
Seabra Posted June 30, 2010 at 08:40 PM Author Report #337090 Posted June 30, 2010 at 08:40 PM 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
pmaster Posted June 30, 2010 at 08:49 PM Report #337092 Posted June 30, 2010 at 08:49 PM Tens toda a razão desculpa, mas como eu referi em cima essa maneira funciona se tiveres o selectionMode como FullRowSelect.
Seabra Posted June 30, 2010 at 10:05 PM Author Report #337102 Posted June 30, 2010 at 10:05 PM 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)
bioshock Posted June 30, 2010 at 10:27 PM Report #337104 Posted June 30, 2010 at 10:27 PM Podes sempre utilizar o evento CellMouseClick() e colocar a linha de código abaixo, mas vai dar ao mesmo, algo como: MsgBox(DataGridView1.Rows(e.RowIndex).Index)
Weasel Posted July 1, 2010 at 08:25 AM Report #337143 Posted July 1, 2010 at 08:25 AM 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
FabioRSC Posted April 17, 2025 at 07:11 PM Report #634689 Posted April 17, 2025 at 07:11 PM 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.
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