Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.lang.visual-basic > #19349 > unrolled thread
| Started by | "Ettore" <ettor50@nomail.com> |
|---|---|
| First post | 2018-05-02 14:08 +0200 |
| Last post | 2018-05-03 13:41 +0200 |
| Articles | 8 — 2 participants |
Back to article view | Back to it.comp.lang.visual-basic
Enter al posto tab . "Ettore" <ettor50@nomail.com> - 2018-05-02 14:08 +0200
Re: Enter al posto tab . "Sauro" <vicchi@crsscala.it> - 2018-05-02 14:33 +0200
Re: Enter al posto tab . "Sauro" <vicchi@crsscala.it> - 2018-05-02 15:06 +0200
Re: Enter al posto tab . "Sauro" <vicchi@crsscala.it> - 2018-05-02 15:09 +0200
Re: Enter al posto tab . "Ettore" <ettor50@nomail.com> - 2018-05-02 17:13 +0200
Re: Enter al posto tab . "Ettore" <ettor50@nomail.com> - 2018-05-02 17:25 +0200
Re: Enter al posto tab . "Sauro" <vicchi@crsscala.it> - 2018-05-02 19:33 +0200
Re: Enter al posto tab . "Ettore" <ettor50@nomail.com> - 2018-05-03 13:41 +0200
| From | "Ettore" <ettor50@nomail.com> |
|---|---|
| Date | 2018-05-02 14:08 +0200 |
| Subject | Enter al posto tab . |
| Message-ID | <pcc9ne$lpi$1@dont-email.me> |
Buongiorno a tutto il gruppo IT.CLVB
Sono alle prime armi sulla programmazione, quindi devo fare ancora tanta
strada, anche se ne ho 58 ma di panini ne ho mangiati parecchi, qui invece
mi tocca cercare di capire alcune cose importanti.
La mia domanda e' questa.
------------ Win7.64b, MS.Visual Studio Enterprise
2017---------------------------.
-------------------------
Debbo crearmi un lavoro in VB, che mi consenta di fare dei calcoli temporali
date e trasformazioni, fino a calcolarmi la posizione Luna e Sole.
Gia' sviluppato in excel, che a causa di limitazioni faccio fatica ad andare
avanti.
Quindi debbo crearmi una interfaccia dove inserisco i dati (utilizzando
TexBox) e li ottengo da altre TextBox (not writable).
Quindi inserimento, giorno, mese, anno, pra, minuti, secondi e centesimi
peruna serie di calcoli, compresi Temperatura e pressione millibar.
Nei campi Giorni e gli altri i dati debbono essere validati anche.
Ma mi interessa sapere come posso fare a sostituire il TAB con Enter (char
13)
O letto dei vari eventi come KeyPress, KeyDown, e KeyUp, credo che il
KeyPress possa andare
-----------------------------------------------------------------------------------
CODICE.
Public Sub TextBox1_KeyPress(sender As System.Object, e As
System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim giorno As Integer
If (e.KeyChar <> Microsoft.VisualBasic.ChrW(Keys.Back)) And
(Char.IsNumber(e.KeyChar.ToString(), 0) = False) Then 'Blocca INS character
tipValidation.Show("Numeric Input Required", sender, 5000)
e.Handled = True
End If
If (IsNumeric(TextBox1.Text) = True) Then
giorno = TextBox1.Text
If (giorno < 1) Then
MsgBox("Range 1-31", MsgBoxStyle.Information, "FUORI DATA")
TextBox1.Clear()
e.Handled = True
End If
If (giorno > 31) Then
MsgBox("Range 1-31", MsgBoxStyle.Information, "FUORI DATA")
TextBox1.Clear()
e.Handled = True
End If
End If
End Sub
===========================================================
giusto per gradire.........
Devo usare Enter al posto di Tab
Devo convalidare i dati in modo che non si possano inserire i caratteri che
NON SONO NUMERICI .
Usare i caratteri numerici in un certo range .
Grazie per ogni aiuto e consiglio.
PS. ho girato in rete e ho trovato vari argomenti ma sono diversi in
tipologia.
Tra l'altro questo e' un test per le prove, il progetto e' questo.
https://drive.google.com/open?id=1K1-SpAQRROFAHA9LaS_Gy2Rjfwg-hW4F
[toc] | [next] | [standalone]
| From | "Sauro" <vicchi@crsscala.it> |
|---|---|
| Date | 2018-05-02 14:33 +0200 |
| Message-ID | <pccb79$1r4s$1@gioia.aioe.org> |
| In reply to | #19349 |
[cut] L'insieme delle due funzioni seguenti provoca il tab avanti premendo Invio
[toc] | [prev] | [next] | [standalone]
| From | "Sauro" <vicchi@crsscala.it> |
|---|---|
| Date | 2018-05-02 15:06 +0200 |
| Message-ID | <pccd5h$1umn$1@gioia.aioe.org> |
| In reply to | #19349 |
[CUT] Questo invece dovrebbe farti accettare solo numerti, separatore decimale o segno negativo. Ciao Sauro
[toc] | [prev] | [next] | [standalone]
| From | "Sauro" <vicchi@crsscala.it> |
|---|---|
| Date | 2018-05-02 15:09 +0200 |
| Message-ID | <pccda3$1v0g$1@gioia.aioe.org> |
| In reply to | #19351 |
[CUT]
Questo invece dovrebbe farti accettare solo
numeri, separatore decimale o segno negativo.
Private Sub Text1_KeyPress(KeyAscii As Integer)
Const MaxDec As Integer = 2
Dim MaxCar As Integer
Dim DoveVirgola As Integer ' se Raggiunti massimi decimali
Dim NumIntero As Integer
MaxCar = 12
If Text1.MaxLength > MaxCar Then MaxCar = Text1.MaxLength
NumIntero = MaxCar
If MaxDec > 0 Then NumIntero = MaxCar - (MaxDec + 1)
If KeyAscii = 45 Then ' segno negativo
If Len(Trim(Text1.Text)) = 0 Then
KeyAscii = KeyAscii
Else
KeyAscii = 0
End If
Exit Sub
End If
If KeyAscii = 44 Or KeyAscii = 46 Then
If Text1.Text = "" Or Text1.SelLength = Len(Text1.Text) Then
Text1.Text = "0."
Text1.SelStart = 2
KeyAscii = 0
Exit Sub
End If
If InStr(Text1.Text, ".") > 0 Or InStr(Text1.Text, ",") > 0 Then
KeyAscii = 0
Else
KeyAscii = 44
Exit Sub
End If
End If
If KeyAscii <> 8 Then
If (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = KeyAscii
Else
KeyAscii = 0
End If
If Len(Text1.Text) = MaxCar And Text1.SelLength < 1 Then ' Raggiunta
massima lunghezza
KeyAscii = 0
End If
If InStr(Text1.Text, ",") > 0 Then
DoveVirgola = InStr(Text1.Text, ",")
If Len(Text1.Text) = DoveVirgola + MaxDec And Text1.SelLength < 1
Then
KeyAscii = 0
End If
Else
If Len(Text1.Text) = NumIntero And Text1.SelLength < 1 Then '
Raggiunta massima lunghezza per intero
KeyAscii = 0
End If
End If
End If
End Sub
Ciao
Sauro
[toc] | [prev] | [next] | [standalone]
| From | "Ettore" <ettor50@nomail.com> |
|---|---|
| Date | 2018-05-02 17:13 +0200 |
| Message-ID | <pcckj0$5nn$1@dont-email.me> |
| In reply to | #19352 |
>"Sauro" ha scritto nel messaggio news:pccda3$1v0g$1@gioia.aioe.org...
>[CUT]
>Questo invece dovrebbe farti accettare solo
>numeri, separatore decimale o segno negativo.
>Private Sub Text1_KeyPress(KeyAscii As Integer)
>Const MaxDec As Integer = 2
>Dim MaxCar As Integer
>Dim DoveVirgola As Integer ' se Raggiunti massimi decimali
>Dim NumIntero As Integer
>MaxCar = 12
>If Text1.MaxLength > MaxCar Then MaxCar = Text1.MaxLength
>NumIntero = MaxCar
>If MaxDec > 0 Then NumIntero = MaxCar - (MaxDec + 1)
>If KeyAscii = 45 Then ' segno negativo
> If Len(Trim(Text1.Text)) = 0 Then
> KeyAscii = KeyAscii
> Else
> KeyAscii = 0
> End If
> Exit Sub
>End If
>If KeyAscii = 44 Or KeyAscii = 46 Then
> If Text1.Text = "" Or Text1.SelLength = Len(Text1.Text) Then
> Text1.Text = "0."
> Text1.SelStart = 2
> KeyAscii = 0
> Exit Sub
> End If
> If InStr(Text1.Text, ".") > 0 Or InStr(Text1.Text, ",") > 0 Then
> KeyAscii = 0
> Else
> KeyAscii = 44
> Exit Sub
> End If
>End If
>If KeyAscii <> 8 Then
> If (KeyAscii >= 48 And KeyAscii <= 57) Then
> KeyAscii = KeyAscii
> Else
> KeyAscii = 0
> End If
> If Len(Text1.Text) = MaxCar And Text1.SelLength < 1 Then ' Raggiunta
> massima lunghezza
> KeyAscii = 0
> End If
> If InStr(Text1.Text, ",") > 0 Then
> DoveVirgola = InStr(Text1.Text, ",")
> If Len(Text1.Text) = DoveVirgola + MaxDec And Text1.SelLength < 1
<Then
> KeyAscii = 0
> End If
> Else
> If Len(Text1.Text) = NumIntero And Text1.SelLength < 1 Then '
> Raggiunta massima lunghezza per intero
> KeyAscii = 0
> End If
> End If
>End If
>End Sub
>
>
>Ciao
>Sauro
GRAZIE Sauro
Ho trovato il libro A scuola di Visual Basic 2017 che sto guardando e non
avevo trovato nulla inerente il codice.
Poi modificando una chiave di ricerca delle solite fork di ricerca in
google, ho trovato una cosa interessante per l'evento " KeyDown " , anche
perché inserendo (e.KeyChar), mi dava errore.
Veniva menzionato questo codice sotto che non ha dato errori.
Che ovviamente condivido.
Ovviamente sono andato a controllare la tabella asci che mi ero scaricato.
una che mi visualizza i caratteri ascii.. senza i ctrl, alt, shift+ .
E noto appunto una chiave importante " If (KeyAscii >= 48 And KeyAscii <=
57) Then "
Che indica che leggo in questo modo "Se inserito carattere Ascii =48 (
numero 0) e inserito carattere asci minore di 57 (carattere 9) ALLORA, il
carattere inserito e un NULL interpretato nella textbox.
Che e' il pezzo importante del codice, anche da iniziato e con voglia di
imparare, capire questo e' gia' un buon passo....
Tra le altre cose, vedo che utilizzando il ToolTip(text), mi appare il
messaggio di cosa si dovrebbe inserire, ma un Message Ballon mi piacerebbe,
ma man mano cerco e vedo di capire-
Questo sotto infatti.
Mi sposta il cursore usando RETURN, ma sposto il cursore al prossimo
textbox, che tra l'altro e' una cosa che ho notato in vari programmi, se
inserisci nulla e fai invio non succede nulla, ti sposti tra i vari text, ma
se inserisci un carattere NUMERICO e.. "&" se questo non e' in range, allora
mi da' errore in MessageBox.
Importante. ............... quante cose utili e interessanti.
------------------------------------------------------------------------------
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
Dim KeyAscii As Short = Asc(e.KeyData)
Dim giorno As Integer
If e.KeyData = Keys.Return Then 'Per utilizzare Invio per
spostarsi
TextBox2.Focus() 'Posizione dove
si vuole finisca il cursore
End If
' --------------------codice sopra 3 righe pe ril return !
If KeyAscii <> 8 Then
If KeyAscii > 57 Or KeyAscii < 48 Then
KeyAscii = 0
End If
End If
If (IsNumeric(TextBox1.Text) = True) Then
giorno = TextBox1.Text
If (giorno < 1) Then
MsgBox("Pistola giorno da 1-31", MsgBoxStyle.Information,
"Giorni da 1-31")
TextBox1.Clear()
e.Handled = True
End If
If (giorno > 31) Then
MsgBox("Pistola giorno da 1-31", MsgBoxStyle.Information,
"Giorni da 1-31")
TextBox1.Clear()
e.Handled = True
End If
End If
End Sub
=====================================================
Che ti sembra Sauro ?
Ora comunque provo il tuo, chiudo una prova di rispetto e metto la tua, che
almeno mi fa' capire e cercare di imparare.
Mi piace il VB.Net e ci sono moltissime cose, il linguaggio complesso,
notando anche una marea di funzioni, eventi, oggetti e tanto che vedo sul
tasto destro del mouse comparire .!
Pazzesco
......... dovrei trovare in rete un libro completo, ho scaricato con emule
tanta roba, ma dalle basi e da tutti i comandi spiegati, non so' se conosci
qualcosa ...c'e' una marea di roba, in inglese' e' ostico per me' anche se
leggo roba di astronomia meccanica planetaria sistema solare, in inglese ma
no molto complesso. E comunque preferisco per imparare in italiano.
Tornassi indietro di qualche anno vorrei imparare il C++ e il VB, purtroppo
lavorando ancora non ho il tempo , ma non essendo spossato non mi rompe la
palle nessuna.
Cordiale a tutto il gruppo.spero di imparare da voi molto !
Grazie !
[toc] | [prev] | [next] | [standalone]
| From | "Ettore" <ettor50@nomail.com> |
|---|---|
| Date | 2018-05-02 17:25 +0200 |
| Message-ID | <pccl95$ash$1@dont-email.me> |
| In reply to | #19352 |
>Private Sub Text1_KeyPress(KeyAscii As Integer) >Const MaxDec As Integer = 2 >dim MaxCar As Integer >Dim DoveVirgola As Integer ' se Raggiunti massimi decimali >Dim NumIntero As Integer >MaxCar = 12 >If Text1.MaxLength > MaxCar Then MaxCar = Text1.MaxLength >NumIntero = MaxCar >If MaxDec > 0 Then NumIntero = MaxCar - (MaxDec + 1) >If KeyAscii = 45 Then ' segno negativo > If Len(Trim(Text1.Text)) = 0 Then > KeyAscii = KeyAscii >.................. CUT >Sauro Ho tagliato un bel pezzo, hoprovato a compilarlo ma vedo onde in rosso, quindi ho modificato Text1, in textbox1, Ma da' errore sintassi ( TextBox1.SelLength .............. e prima .. TextBox1.SelStart ) dicendo che non e' un membro di TextBox ...... che gia' mi sto grattando la fronte........... BC30035 - www.bing.com/search?q=BC30035+Visual+Basic+AND++VB.NET+Errore+di+sintassi.&form=VSHELP ciao .
[toc] | [prev] | [next] | [standalone]
| From | "Sauro" <vicchi@crsscala.it> |
|---|---|
| Date | 2018-05-02 19:33 +0200 |
| Message-ID | <pccsq0$sf6$1@gioia.aioe.org> |
| In reply to | #19354 |
[cut] In realtà le Sub che ho postato funzionano con VB6. Credevo che con pochi aggiustamenti potessero funzionare anche con VB.net (che in realtà non conosco) Scusa il disturbo. Ciao, Sauro
[toc] | [prev] | [next] | [standalone]
| From | "Ettore" <ettor50@nomail.com> |
|---|---|
| Date | 2018-05-03 13:41 +0200 |
| Message-ID | <pceshj$44j$1@dont-email.me> |
| In reply to | #19355 |
Figurati Sauro nessun problema. E giorni che mi ci sto picchiando con le validazioni . Materiale non ce ne' abbastanza, e se si trova non rispecchia quanto ti serve, perché non sai tutto, sei principiante e via dicendo, non capisci in quale situazione devi utilizzarli e con quale classe........... difatti cercando https://www.google.it/search?biw=1006&bih=628&ei=niLqWt2AEeLw6ASDgpzwBg&q=Il+tipo+System.Windows.Forms.KeyPressArgs+non+e%27+definito&oq=Il+tipo+System.Windows.Forms.KeyPressArgs+non+e%27+definito&gs_l=psy-ab.3...124189.154653.0.156909.59.58.0.0.0.0.253.5017.43j9j2.54.0..2..0...1.1.64.psy-ab..5.49.4356...0j0i131k1j0i22i30k1j33i22i29i30k1j33i160k1.0.lBDwr7NRjrk ----------------------- https://msdn.microsoft.com/it-it/library/system.windows.forms.keyeventargs(v=vs.110).aspx ------------------------ http://www.settorezero.com/wordpress/vbnet-accettare-in-una-textbox-soltanto-numeri-o-caratteri-predefiniti/ -------------------------------- Non mi trovo con gli eventi KeyPress devi utilizzarne alcuni e non altri, KeyDown altri diversi............... e.KeyData, e.KeyChar ecc............. Quindi già essendo principiante e mettendomi ogni giorno a leggermi alcune pagine, alla fine non trovo tanta documentazione che rispecchi vari esempi e molteplici per le tipologie richieste. Questo intendo. Comunque ho una marea di libri e ogni giorno cerco. Penso che, non abbia solo io problemi ma coloro che vogliono apprendere debbano trovare esempi e listati con, con vari tipologie di uso e in quale modo usarli . Vabbè saluto e concludo, che mi metto a leggere dei pdf. Ti auguro una felice giornata e ti ringrazio. Ettore >"Sauro" ha scritto nel messaggio news:pccsq0$sf6$1@gioia.aioe.org... >[cut] >In realtà le Sub che ho postato funzionano con VB6. >Credevo che con pochi aggiustamenti potessero >funzionare anche con VB.net (che in realtà non conosco) >Scusa il disturbo. ----------------- ma figurati ! >Ciao, Sauro
[toc] | [prev] | [standalone]
Back to top | Article view | it.comp.lang.visual-basic
csiph-web