Se você leu o título do artigo deve estar curioso para ver o projeto em funcionamento. Na verdade a coisa é mais simples de que pensamos e , não é necessário muito código para por as coisas para funcionar. Apenas uma API aqui outra ali e pronto.
Vamos mostrar como permitir a edição nos itens de uma caixa de Listagem - ListBox. Vamos começar:
- Inicie um novo projeto no VB e no formulário padrão insira uma caixa de listagem , uma caixa de texto e duas etiquetas ( Labels ) conforme o layout abaixo:
Agora insira o seguinte código no formulário:
Option Explicit
Private Type RECT Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Private Const LB_GETITEMRECT = &H198 Private Sub Form_Load() Private Sub List1_DblClick() Private Sub List1_GotFocus() Private Sub List1_Scroll() Private Sub Text1_KeyPress(KeyAscii As Integer) Private Sub Text1_LostFocus() |
Quando você clica duas vezes sobre um item da caixa de listagem a posição RECT para o item selecionado é encontrada , então a caixa de texto que esta invisível é movida e cobre o item da caixa de listagem.
Você pode então informar os dados na caixa de texto e quando terminar pressionar a tecla ENTER . Feito isto o texto do item é alterado e a caixa de texto é tornada invisível novamente. O resultado você vê abaixo:
Legal né... É isso ai...
José Carlos Macoratti