+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Tastiera virtuale

  1. #1
    L'avatar di giopas79
    giopas79 non è in linea Scolaretto
    Post
    59

    Tastiera virtuale

    tastiera virtuale
    Salve ragazzi devo fare una tastiera virtuale dove cliccando nei relativi pulsanti mi diano in uscita le lettere /numeri in uscita per poter scrivere in una textbox di un form!!

    potete aiutarmi grazie per l'interesse in anticipo
    Ultima modifica di elisab; 16-10-2011 22:28 

  2. #2
    Pirelli72 Guest
    Allora ho te la costruisci tu semplicemente con una Form e con dei pulsanti

    Oppure usi quella integrata con Windows:
    C:\windows\system32\osk.exe

    La tastiera virtuale di windows la puoi richiamare tranquillamente dalla tua Form con:
    codice:
    Process.start("C:\windows\system32\osk.exe")
    La usi e poi la chiudi come faresti con quella che ti autocostruisci, ne di più ne di meno. Se poi graficamente non ti piace allora è un'altra storia.
    Ultima modifica di elisab; 16-10-2011 22:30 

  3. #3
    L'avatar di giopas79
    giopas79 non è in linea Scolaretto
    Post
    59
    No quella di windows non va bene questa come la tua devo inserirla all'interno di un mio progetto dove ho una pag che mi si apre e ho la necessita' di avere una tastiera all'interno per poter scivere nelle pag internet

  4. #4
    Pirelli72 Guest
    Non ci sono problemi. Purtroppo la tastiera virtuale che ho fatto e scritta in C# ma ti posto il codice tradotto in VB.NET
    Chiaramente la grafica te la devi fare.

    codice:
    Public Partial Class AlphanumericKeyPad 
        Inherits Form 
        
        Private m_MaxDigits As Integer 
        Private m_sInitValue As String 
        Private m_sValue As String 
        Private m_OutState As Boolean 
        
        Public Sub New() 
            InitializeComponent() 
            m_MaxDigits = 30 
            m_sValue = "" 
            m_OutState = False 
            AlphanumericTextBox.Text = m_sValue + "»"c 
        End Sub 
        
        Public Sub SetValue(ByVal sInitValue As String) 
            m_sValue = InlineAssignHelper(m_sInitValue, sInitValue) 
        End Sub 
        
        Public Function GetValue() As String 
            Return m_sInitValue 
        End Function 
        
        Private Sub Insert(ByVal ch As Char) 
            Dim Str As String 
            Str = "" 
            Str += ch 
            If Not buttonShift.Checked Then 
                Str = Str.ToLower() 
            End If 
            If m_sValue.Length < m_MaxDigits Then 
                m_sValue += Str 
            End If 
            AlphanumericTextBox.Text = m_sValue + "»"c 
        End Sub 
        Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("1"c) 
        End Sub 
        
        Private Sub button2_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("2"c) 
        End Sub 
        
        Private Sub button3_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("3"c) 
        End Sub 
        
        Private Sub button4_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("4"c) 
        End Sub 
        
        Private Sub button5_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("5"c) 
        End Sub 
        
        Private Sub button6_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("6"c) 
        End Sub 
        
        Private Sub button7_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("7"c) 
        End Sub 
        
        Private Sub button8_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("8"c) 
        End Sub 
        
        Private Sub button9_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("9"c) 
        End Sub 
        
        Private Sub button0_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("0"c) 
        End Sub 
        
        Private Sub buttonQ_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("Q"c) 
        End Sub 
        
        Private Sub buttonW_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("W"c) 
        End Sub 
        
        Private Sub buttonE_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("E"c) 
        End Sub 
        
        Private Sub buttonR_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("R"c) 
        End Sub 
        
        Private Sub buttonT_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("T"c) 
        End Sub 
        
        Private Sub buttonY_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("Y"c) 
        End Sub 
        
        Private Sub buttonU_Click(ByVal sender As Object, ByVal e As EventArgs) 
            Insert("U"c) 
        End Sub

  5. #5
    Pirelli72 Guest
    Visto che ti definisci un novellino la prima regola è: 'non scambiare mai email contenente programmi,codici o equivalenti con sconosciuti.'


    Poi non mi sembra così difficile, partiamo dall'inizio
    Hai costruito un'abbozzo di interfaccia grafica? Cioè la Form con la textBox e pulsanti alfa/numerici?

  6. #6
    L'avatar di giopas79
    giopas79 non è in linea Scolaretto
    Post
    59

    ok

    si ho costruito una form e ho inserito dei pulsanti
    (come alfanumeri)?

  7. #7
    Pirelli72 Guest
    Nel senso pulsanti con i numeri e/o lettere.
    1234567890, ABCDEFGHILMNOPQRSTUVZ

  8. #8
    L'avatar di giopas79
    giopas79 non è in linea Scolaretto
    Post
    59

    ok

    si esatto ho fatto

  9. #9
    Pirelli72 Guest
    Ok adesso devi utilizzare l'evento Click di ogni pulsante per inserire i caratteri all'interno della TextBox.
    Puoi fare in questo modo (per ogni pulsante ovviamente)
    codice:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Try
          TextBox1.text &= "1"c
       Catch ex As Exception
       End Try
    End Sub
    Oppure intelligentemente in questo modo:
    codice:
    Sub Insert(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click,Button4.Click
       Try
          Dim Mybutton As Button = CType(sender, Button)
          TextBox1.Text &= CChar(Mybutton.Text)
        Catch ex As Exception
        End Try
    End Sub
    Chiaramente devi aggiungere gli eventi di tutti i pulsanti, io ti ho messo 5 pulsanti come puoi vedere i relativi eventi (Button1.Click, Button2.Click, Button3.Click,Button4.Click)
    Chiaramente la proprietà .text dei pulsanti deve corrispondere ai numeri e lettere.
    Ci siamo?
    Ultima modifica di elisab; 16-10-2011 22:36 

  10. #10
    Pirelli72 Guest
    Non hai aggiungo ancora la TextBox!!!!!!!!!
    Poi aggiungi nel codice:
    codice:
        Sub Insert(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click, Button4.Click
            Try
                Dim Mybutton As Button = CType(sender, Button)
                TextBox1.Text &= CChar(Mybutton.Text)
            Catch ex As Exception
            End Try
        End Sub
    Devi aggiungere però tutti gli eventi dei pulsanti che mancano!
    Ovvero:
    System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click,Button4.Click.............Button4.cl ick

    Se non hai voglia di aggiungerli a mano li puoi aggiungere da codice inserendo questo codice:

    codice:
        Public Function FindControl(ByVal ControlName As String, ByVal CurrentControl As Control) As Control
            For Each ctr As Control In CurrentControl.Controls
                If ctr.Name = ControlName Then
                    Return ctr
                Else
                    ctr = FindControl(ControlName, ctr)
                    If Not ctr Is Nothing Then
                        Return ctr
                    End If
                End If
            Next ctr
            Return Nothing
        End Function
    
        Function GetChildControls(ByVal ctrl As Control) As Control()
            Dim controls As New ArrayList
            For Each c As Control In ctrl.Controls
                controls.Add(c)
                controls.AddRange(GetChildControls(c))
            Next
            Return DirectCast(controls.ToArray(GetType(Control)), Control())
        End Function
    
        Sub Insert(ByVal sender As System.Object, ByVal e As System.EventArgs)
            Try
                Dim Mybutton As Button = CType(sender, Button)
                TextBox1.Text &= CChar(Mybutton.Text)
            Catch ex As Exception
            End Try
        End Sub
    E nell'evento FormLoad:
    codice:
        Sub AddHanlerToButton()
            Try
                For Each c As Control In GetChildControls(Me)
                    If TypeOf c Is Button Then
                        AddHandler c.Click, AddressOf Insert
                    End If
                Next
            Catch ex As Exception
            End Try
        End Sub
    Ultima modifica di elisab; 16-10-2011 22:42 

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi