Página 1 de 1
Grid Setfocus
Enviado: 12 Fev 2008 12:38
por MARCELOG
Olá pessoal,
estou fazendo uma pesquisa letra a letra num textbox e definindo a
propriedade value do grid.
A seleção no grid é até alterada.
Contudo, quando o grid recebe o foco ele, apesar de value ser 2 (por
exemplo), insiste em destacar a primeira linha.
Como alterar esse comportamento?
Não consegui achar o método setfocus do grid para dar uma olhada e
tentar consertar.
Obrigado.
MarceloG
Enviado: 12 Fev 2008 14:33
por asimoes
Olá Marcelo,
Mostre pra gente o trecho do seu código pra analise.
[]´s
Enviado: 12 Fev 2008 15:03
por MARCELOG
Veja isso
...
@ 360,143 TEXTBOX TXT1 ;
HEIGHT 25 ;
WIDTH 465 ;
ON CHANGE PESQUSUA(USUARIO.CMB1.VALUE) ;
ON ENTER IIF(EMPTY(USUARIO.TXT1.VALUE),USUARIO.BTT1.SETFOCUS,USUARIO.GRD1.SETFOCUS)
...
// quando o usuário tecla ENTER e o campo está vazio, vai para o botão.
Se não, coloca o foco no grid.
PROCEDURE PESQUSUA(nColuna)
/*
Func/Proc: PESQUSUA
Objetivo.: Efetua pesquisa letra a letra no grid.
Adaptação de Stanis
*/
LOCAL i, cPesquisa
// Curto circuito
IF USUARIO.GRD1.ITEMCOUNT <= 1
RETURN
ENDIF
cPesquisa := ALLTRIM(USUARIO.TXT1.VALUE)
FOR i := 1 TO USUARIO.GRD1.ITEMCOUNT
IF SUBSTR(USUARIO.GRD1.ITEM(i)[nColuna],1,LEN(cPesquisa)) == cPesquisa
USUARIO.GRD1.VALUE := {i}
EXIT
ENDIF
NEXT i
RETURN
Se, por exemplo, USUARIO.GRD1.VALUE := {16}, ao colocar o foco no grid a linha 16 deveria está iluminada.
Mas não, a linha iluminada é a primeira.
MarceloG.
Ps: uso grid multiselect, mas no grid padrão o erro, ou melhor, comportamento também acontece.
Enviado: 14 Fev 2008 10:26
por MARCELOG
Olá pessoal,
não há nada de errado no grid.
É que a função que chamava a pesquisa estava no evento on change de um textbox.
Assim, ao fazer a alteração do conteúdo do textbox (mesmo externa), ele chamava a função de pesquisa.
De qualquer forma, brigadão.
MarceloG