Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    65

    Attivare un tasto funzione su tutto il form

    Hola
    Vorrei implementare una guida attiva su tutti i textbox del mio form.
    Ho pensato al classico tasto F1, ma per evitare di attivare un evento KeyDown su ogni singola textbox (sono parecchie) volevo sapere se si poteva attivare sull'intero form: cioè quando premo F1 verifico la textbox attiva ed attivo la relativa guida.
    E' fattibile?
    Oppure avete altri suggerimenti?
    Grazie

  2. #2

    Re: Attivare un tasto funzione su tutto il form

    Originariamente inviato da olmof
    Ho pensato al classico tasto F1, ma per evitare di attivare un evento KeyDown su ogni singola textbox (sono parecchie) volevo sapere se si poteva attivare sull'intero form: cioè quando premo F1 verifico la textbox attiva ed attivo la relativa guida.
    Ti basta gestire (per esempio) l'evento OnKeyDown del form:

    codice:
            private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.F1)
                {
                    //...
                }
            }
    Ricordandoti di impostare KeyPreview a True.

    (Ho dato per scontato che utilizzi C#, ma per altri linguaggi il discorso è analogo).

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da olmof
    Vorrei implementare una guida attiva su tutti i textbox del mio form.
    Di quale linguaggio parliamo?
    Hai letto il Regolamento?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314
    Al posto delle textbox standard puoi usare un' user controll derivato da esse.
    Non so se è il linguaggio che usi ma in VB puoi fare così:
    codice:
    Public Class mia_textbox
    
        Inherits TextBox
    
        Private Sub guida_F1(ByVal sender As System.Object, _
                             ByVal tasto As System.Windows.Forms.KeyEventArgs) _
                         Handles Me.KeyDown
            If tasto.KeyData = Keys.F1 Then
                Console.WriteLine("F1 su " & Me.Name)
            End If
        End Sub
    
    End Class
    In questo modo ogni "mia_textbox" aggiunta al form ha già l' evento keydown "preconfezionato".
    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    65
    Scusate, sono stato via un paio di giorni.
    Grazie per le risposte.
    Effettivamente uso VB.Net: ho risolto con il suggerimento di ESSE-EFFE.
    Ora però ho un altro problema: come faccio ad individuare la textbox attiva al momento?

    Grazie

  6. #6
    Originariamente inviato da olmof
    Ora però ho un altro problema: come faccio ad individuare la textbox attiva al momento?
    Ad esempio tramite la proprietà ActiveControl del form.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    65
    Perfetto.
    Grazie tante

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.