Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [.net] Problema Sendkeys

    Salve a tutti,
    sono ancora alle prese con la creazione di una tastiera a schermo e per semplicità volevo implementarla con la Sendkeys in modo che ogni bottone corrisponda semplicemente ad un istruzione Sendkeys.send("tasto").
    Il problema che mi si prospetta è che quando clicco sul tasto perdo il focus. I dati in questione sono presenti in una Datagrid e se ad ogni pressione del tasto rimetto datagrid.focus() succede che mi seleziona tutto il campo e me lo sovrascrive con la singola lettera.

    Come posso ovviare a questo problema?

    Grazie mille in anticipo,
    Neptune.
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119
    Nella sub tasto_click() imposta il focus dove dovrebbe agire la sendkeys...

  3. #3
    Originariamente inviato da Dexter1983
    Nella sub tasto_click() imposta il focus dove dovrebbe agire la sendkeys...
    Cioè ho questo codice cosa devo scriverci per dirgli di agire su DataGridView1 ?
    codice:
    Private Sub Button35_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button35.Click
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  4. #4
    Per precisione vi dico che mi sono accorto che non è un "datagrid" ma un "DataGridview", anche se non so quale differenza ci possa essere.

    Ad ogni modo non sono ancora riuscito ad arginare il problema in nessuno modo.
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119
    Credo che tu debba usare il motodo setfocus (uso VB6, non so se si chiama ancora così in VB.NET) per dare il focus al tuo oggetto.

    Comunque se usi l'API sendmessage anzichè sendkeys eviti di stare attento a questi dettagli perchè agisci direttamente sul controllo tramite il suo HWND.

  6. #6
    Originariamente inviato da Dexter1983
    Credo che tu debba usare il motodo setfocus (uso VB6, non so se si chiama ancora così in VB.NET) per dare il focus al tuo oggetto.

    Comunque se usi l'API sendmessage anzichè sendkeys eviti di stare attento a questi dettagli perchè agisci direttamente sul controllo tramite il suo HWND.
    Cioè dovrebbe supportarmi semplicemene DataGridView1.SendMessage("Messaggio") ? perchè non va
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    119
    No, dovresti dichiarare la API SendMessage prima, e poi non puoi usarla come un metodo, è una funzione.

    Se la Datagrid o quello che usi supporta il metodo SetFocus, prova a fare come ti ho detto in precedenza. SendKeys è un pò più semplice da usare.

    Una cosa così dovrebbe funzionare:
    codice:
    'Poni il focus su tuo oggetto
    tuoOggetto.setfocus
    'Invi messaggi con SendKeys
    SendKeys "prova"
    Tenta con un controllo semplice per provare, che sò, una TextBox.
    Di esempi su SendKeys e SendMessage sul forum e in rete ce ne sono diversi.
    MSDN - SendMessage

  8. #8
    Originariamente inviato da Dexter1983
    No, dovresti dichiarare la API SendMessage prima, e poi non puoi usarla come un metodo, è una funzione.

    Se la Datagrid o quello che usi supporta il metodo SetFocus, prova a fare come ti ho detto in precedenza. SendKeys è un pò più semplice da usare.

    Una cosa così dovrebbe funzionare:
    codice:
    'Poni il focus su tuo oggetto
    tuoOggetto.setfocus
    'Invi messaggi con SendKeys
    SendKeys "prova"
    Tenta con un controllo semplice per provare, che sò, una TextBox.
    Di esempi su SendKeys e SendMessage sul forum e in rete ce ne sono diversi.
    MSDN - SendMessage
    La sendkeys l'ho usata, anche il .focus, il probelma era che sul datagredview sul quale dovevo utilizzarlo non andava perchè al setfocus mi "selezionava tutto il contenuto di una cella" e all'invio del tasto mi sovrascriveva tutto il contenuto con la semplice lettera.
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  9. #9
    Originariamente inviato da Dexter1983
    No, dovresti dichiarare la API SendMessage prima, e poi non puoi usarla come un metodo, è una funzione.

    Se la Datagrid o quello che usi supporta il metodo SetFocus, prova a fare come ti ho detto in precedenza. SendKeys è un pò più semplice da usare.

    Una cosa così dovrebbe funzionare:
    codice:
    'Poni il focus su tuo oggetto
    tuoOggetto.setfocus
    'Invi messaggi con SendKeys
    SendKeys "prova"
    Tenta con un controllo semplice per provare, che sò, una TextBox.
    Di esempi su SendKeys e SendMessage sul forum e in rete ce ne sono diversi.
    MSDN - SendMessage
    Scusami se te lo chiedo, ma potrestifare un esempio funzionale del SendMessage?
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  10. #10

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.