Fórum [Ajuda] Como fazer um ListView receber foco ? #376195
23/10/2009
0
Pessoal, a minha dúvida é a seguinte:
Eu tenho uma tela que irá cadastrar e-mails. Então eu tenho um campo Edit e logo abaixo um ListView. Quando eu digito um e-mail e clico ENTER o e-mail é incluído no ListView.
Até aí tudo certo... o problema começa quando eu estou com o cursor no campo Edit e clico TAB para passar para o ListView.
O que eu preciso é que quando eu clico TAB para sair do campo de digitação de e-mail o foco seja direcionado para o ListView, posicionando no primeiro registro, caso o ListView não esteja vazio. Se estiver vazio, o foco deve permanecer no campo Edit.
Eu não estou consegindo fazer isso.
Já coloquei o código no evento KeyDown do campo Edit mas ele não pega o TAB, somente funciona com o ENTER, mas o ENTER é para incluir e-mails na lista.
O código que estou usando é:
Agradeço à todos que puderem me ajudar.
Abraço
Eu tenho uma tela que irá cadastrar e-mails. Então eu tenho um campo Edit e logo abaixo um ListView. Quando eu digito um e-mail e clico ENTER o e-mail é incluído no ListView.
Até aí tudo certo... o problema começa quando eu estou com o cursor no campo Edit e clico TAB para passar para o ListView.
O que eu preciso é que quando eu clico TAB para sair do campo de digitação de e-mail o foco seja direcionado para o ListView, posicionando no primeiro registro, caso o ListView não esteja vazio. Se estiver vazio, o foco deve permanecer no campo Edit.
Eu não estou consegindo fazer isso.
Já coloquei o código no evento KeyDown do campo Edit mas ele não pega o TAB, somente funciona com o ENTER, mas o ENTER é para incluir e-mails na lista.
O código que estou usando é:
if (Key = VK_TAB) and (not (Screen.ActiveControl is TListView)) then begin if lvEmailsContato.Items.Count > 0 then begin lvEmailsContato.SetFocus; lvEmailsContato.Items.Item[0].Focused := True; lvEmailsContato.Items.Item[0].Selected := True; end else edtEmailContato.SetFocus; end;
Agradeço à todos que puderem me ajudar.
Abraço
Marcos.gandin
Curtir tópico
+ 0
Responder
Posts
23/10/2009
Marcos.gandin
Pessoal...
Consegui resolver o problema colocando o código no evento OnEnter do ListView.
Flw
Consegui resolver o problema colocando o código no evento OnEnter do ListView.
if lvEmailsContato.Items.Count > 0 then begin lvEmailsContato.SetFocus; lvEmailsContato.Items.Item[0].Focused := True; lvEmailsContato.Items.Item[0].Selected := True; end else edtEmailContato.SetFocus;
Flw
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)