Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di bongi
    Registrato dal
    Nov 2008
    Messaggi
    22

    VB6 - VB.net : textbox formattata per inserimento indirizzo IP

    Salve a tutti!
    qualcuno sa dirmi come posso fare affinchè una textbox sia predisposta al solo inserimento di un indirizzo IP?
    quindi dovrà essere un'espressione del tipo xxx.xxx.xxx.xxx con valori validi (<=256) per ogni xxx?

    Grazie in anticipo!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: VB6 - VB.net : textbox formattata per inserimento indirizzo IP

    Originariamente inviato da bongi
    ... valori validi (<=256) ...
    256 non e' un valore valido ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di bongi
    Registrato dal
    Nov 2008
    Messaggi
    22
    si certo
    <256

    cmq volevo solo fare un esempio di condizione
    se non erro un'altra condizione è che il primo numero non può essere = 0

    non esiste un controllo o un metodo "automatico"

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Puoi usare una regular expression ...

    Oppure leggi questo

    http://www.codeproject.com/KB/miscct...drCtrlLib.aspx

    anche se in C#, va bene per VB.NET ...

    Per VB6 le cose sono diverse, ma non ho capito ... devi utilizzarlo in VB6 o VB.NET?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di bongi
    Registrato dal
    Nov 2008
    Messaggi
    22
    sono in fase iniziale
    ancora non ho deciso se usare vb6 o vb net ... sono scarsa in entrambi, forse mi trovo meglio con il vb6!
    il fatto è che il programmino è veramente semplice ma per noi utile, così...

    non conosco c#
    come posso uilizzare il codice che ho trovato nel link che mi hai inviato?

    se non esiste già un metodo, pensi che si possa risolvere la questione creando una funzione o è troppo complicato?

    tra l'altro, ripensandoci, non è neanche vero che un indirizzo IP non possa iniziare con 0 perchè potrei scrivere 0.0.0.0 ... sono un po' confusa!

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da bongi
    sono in fase iniziale
    ancora non ho deciso se usare vb6 o vb net ... sono scarsa in entrambi, forse mi trovo meglio con il vb6!
    il fatto è che il programmino è veramente semplice ma per noi utile, così...
    Allora, prima di pensare a questo problema, dovresti fare un'analisi piu' approfondita e decidere il linguaggio da scegliere ... Le cose cambiano parecchio (ovviamente) ...

    non conosco c#
    come posso uilizzare il codice che ho trovato nel link che mi hai inviato?
    Se conosci VB.NET, non e' affatto difficile "convertirlo", anzi, e' intuitivo ...

    se non esiste già un metodo, pensi che si possa risolvere la questione creando una funzione o è troppo complicato?
    Puoi tranquillamente pensare ad una funzione ...

    tra l'altro, ripensandoci, non è neanche vero che un indirizzo IP non possa iniziare con 0 perchè potrei scrivere 0.0.0.0 ...
    E cosa rappresenterebbe un IP 0.0.0.0 ?

    sono un po' confusa!
    Sì ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di bongi
    Registrato dal
    Nov 2008
    Messaggi
    22
    Ho provato a gestire l'inserimento dell'indirizzo IP con MaskedTextBox, ma è stato un disastro...
    Probabilmente non è molto elegante, ma ho deciso di risolvere la questione in questo modo:

    anzichè fare un'unica textbox, creo 4 textbox
    alla digitazione controllo che vengano inseriti solo caratteri numerici (al massimo 3)
    e al cambio di focus controllo che il contenuto sia >0 e <256
    all'inserimento della 3a cifra il focus va direttamente nella textbox successiva

    che ne dite?

  8. #8
    Utente di HTML.it L'avatar di bongi
    Registrato dal
    Nov 2008
    Messaggi
    22
    il codice che ho creato è questo:
    (txtIP1 txtIP2 txtIP3 txtIP4 sono le textbox relative all'indirizzo IP)

    <code>
    Private Sub txtIP1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtIP1.KeyPress
    If Not IsNumeric(e.KeyChar) Then
    e.KeyChar = ""
    End If
    End Sub

    Private Sub txtIP2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtIP2.KeyPress
    If Not IsNumeric(e.KeyChar) Then
    e.KeyChar = ""
    End If
    End Sub

    Private Sub txtIP3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtIP3.KeyPress
    If Not IsNumeric(e.KeyChar) Then
    e.KeyChar = ""
    End If
    End Sub

    Private Sub txtIP4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtIP4.KeyPress
    If Not IsNumeric(e.KeyChar) Then
    e.KeyChar = ""
    End If
    End Sub

    Private Sub txtIP1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtIP1.TextChanged
    If Len(txtIP1.Text) > 0 Then
    If (Int(txtIP1.Text) > 0 And Int(txtIP1.Text) < 256) Then
    txtIP1.BackColor = Color.White
    If Len(txtIP1.Text) = 3 Then
    txtIP2.Focus()
    End If
    Else
    txtIP1.Text.ToString()
    txtIP1.Text = ""
    MsgBox("Valore Inserito Non Valido")
    txtIP1.Focus()
    txtIP1.BackColor = Color.Yellow
    End If
    End If
    End Sub

    Private Sub txtIP2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtIP2.TextChanged
    If Len(txtIP2.Text) > 0 Then
    If (Int(txtIP2.Text) > 0 And Int(txtIP2.Text) < 256) Then
    txtIP2.BackColor = Color.White
    If Len(txtIP2.Text) = 3 Then
    txtIP3.Focus()
    End If
    Else
    txtIP2.Text.ToString()
    txtIP2.Text = ""
    MsgBox("Valore Inserito Non Valido")
    txtIP2.Focus()
    txtIP2.BackColor = Color.Yellow
    End If
    End If
    End Sub

    Private Sub txtIP3_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtIP3.TextChanged
    If Len(txtIP3.Text) > 0 Then
    If (Int(txtIP3.Text) > 0 And Int(txtIP3.Text) < 256) Then
    txtIP3.BackColor = Color.White
    If Len(txtIP3.Text) = 3 Then
    txtIP4.Focus()
    End If
    Else
    txtIP3.Text.ToString()
    txtIP3.Text = ""
    MsgBox("Valore Inserito Non Valido")
    txtIP3.Focus()
    txtIP3.BackColor = Color.Yellow
    End If
    End If
    End Sub

    Private Sub txtIP4_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtIP4.TextChanged
    If Len(txtIP4.Text) > 0 Then
    If (Int(txtIP4.Text) > 0 And Int(txtIP4.Text) < 256) Then
    txtIP4.BackColor = Color.White
    If Len(txtIP4.Text) = 3 Then
    cmbProtocol.Focus()
    End If
    Else
    txtIP4.Text.ToString()
    txtIP4.Text = ""
    MsgBox("Valore Inserito Non Valido")
    txtIP4.Focus()
    txtIP4.BackColor = Color.Yellow
    End If
    End If
    End Sub

    </code>


    ora il mio problema è questo:
    nelle textbox posso inserire solo numeri... ma se voglio cancellare quello che ho scritto? il mio codice non me lo permette!!

    Grazie in anticipo dell'aiuto!

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Giacché hai deciso di scriverlo in VB .NET, ti sarà utile sapere che la stessa routine di evento può essere riferita a più controlli. Quindi se modifichi
    codice:
    Private Sub txtIP1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtIP1.KeyPress
    in
    codice:
    Private Sub txtIP1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtIP1.KeyPress, txtIP2.KeyPress, txtIP3.KeyPress, txtIP4.KeyPress
    essa varrà per l'evento KeyPress di tutte e quattro le TextBox. Il nome della Sub è irrilevante.

    Riguardo alla cancellazione, così come accetti che e.KeyChar sia numerico, puoi aggiungere come valore accettabile quello del tasto Backspace.

    (Edit)
    P.S. Rendi più leggibile il codice che posti indentandolo correttamente e racchiudendolo con gli appositi tag (#)

  10. #10
    Utente di HTML.it L'avatar di bongi
    Registrato dal
    Nov 2008
    Messaggi
    22
    Grazie per il consiglio, non sapevo di poter utilizzare la stesso routine
    però nel mio caso non penso di poterlo fare visto che faccio controlli differenti a seconda della textbox in cui mi trovo...

    comunque, per quanto riguarda il backspace, avevo capito a livello teorico come fare, mi mancava ...la pratica!
    ho trovato che il codice ASCII del backspace è 8 quindi penso di adottare questa soluzione (mi sembra che funzioni bene) per tutte le textbox sull'evento KeyPress

    If Asc(e.KeyChar) <> 8 Then
    If Not IsNumeric(e.KeyChar) Then
    e.KeyChar = ""
    End If
    End If


    PS: come si fa a mettere il codice tra tag ?!

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.