PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

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 é:

  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

Marcos.gandin

Responder

Posts

23/10/2009

Marcos.gandin

Pessoal...

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

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar