Focus di un panel

di il
5 risposte

Focus di un panel

Buongiorno a tutti,

ho una form, all'interno della form ho un panel, all'interno del panel un textbox.

Quando seleziono la textbox attivo il suo focus.

Il problema (ma sicuramente sbaglio io) è che se clicco sul  corpo del panel o sul corpo della form, il focus rimane alla textbox e non posso intercettare l'evento lostfocus della textbox.

Ho provato a impostare ad esempio anche panel.tabstop=true ma non cambia nulla.

Dove sbaglio ? come posso risolvere per intercettare l'evento lostfocus della textbox ?

Grazie

5 Risposte

  • Re: Focus di un panel

    Al momento l'unico modo che ho trovato è forzare il focus nell'evento MouseDown con panel.focus()

  • Re: Focus di un panel

    Un form con un panel contenente un editbox…

    27/06/2024 - piter123 ha scritto:


    panel.focus()

    Puoi metterlo ovunque…

    Ma che senso ha?

  • Re: Focus di un panel

    27/06/2024 - piter123 ha scritto:


    Ho provato a impostare ad esempio anche panel.tabstop=true ma non cambia nulla.

    Significa che alla pressione tab passa la tabulazione agli oggetti tabulabili che sono nel pannello… il pannello non è tabulabile.

    Metti due edit sul form e due sul panel.

    Disabilita tabstop e vedi se dalle edit del form si passa alle editb del panel.

    Poi abilita tabstop al panel e ripeti l'esperimento.

  • Re: Focus di un panel

    Quando clicchi sul Panel, dove vorresti che si spostasse il focus? Se non ci sono altri controlli che possono ricevere il focus questo rimarrà sull'unica TextBox. Ci si potrebbe domandare: “Perché allora il Panel ha la proprietà TabStop?” La risposta è che, se ci fossero due Panel, ognuno con la sua TextBox, il focus si sposterebbe sulla seconda TextBox nel secondo Panel.

    Se non hai altri controlli su cui spostare il focus puoi intercettare l'evento Click sul Panel e forzare il focus su una TextBox che ha una Location fuori dal Form e quindi è invisibile.

  • Re: Focus di un panel

    27/06/2024 - grumpy ha scritto:


    Quando clicchi sul Panel, dove vorresti che si spostasse il focus? Se non ci sono altri controlli che possono ricevere il focus questo rimarrà sull'unica TextBox. Ci si potrebbe domandare: “Perché allora il Panel ha la proprietà TabStop?” La risposta è che, se ci fossero due Panel, ognuno con la sua TextBox, il focus si sposterebbe sulla seconda TextBox nel secondo Panel.

    Se non hai altri controlli su cui spostare il focus puoi intercettare l'evento Click sul Panel e forzare il focus su una TextBox che ha una Location fuori dal Form e quindi è invisibile.

    Il panel accetta il focus… e toglie l'evidenziato dalla edit box. Se digiti qualcosa non scrive nulla.

    Ma tabstop ha un altro significato.. per il pannello.

Devi accedere o registrarti per scrivere nel forum
5 risposte