Leave da una c1textbox

venerdì 17 marzo 2006 - 11.10

livio Profilo | Newbie



Sto utilizzando un componente c1TextBox e mi servirebbe capire nel metodo leave se sto uscendo dal componente perchè sto cliccando su un check della form o se sto andando in un qualsiasi altro componente della form.

Sto utilizzando un c1textbox perchè mi facilita i controlli visto che contiene un campo codice con un particolare formato ma anche se usassi una TextBox normale come faccio a capire durante la validazione prima di uscire dal componente verso chi sto andando per poter differenziare 2 diverse modalità di controllo sul codice????



Grazie dell'aiuto!


ciao

Brainkiller Profilo | Guru

>Sto utilizzando un componente c1TextBox e mi servirebbe capire
>nel metodo leave se sto uscendo dal componente perchè sto cliccando
>su un check della form o se sto andando in un qualsiasi altro
>componente della form.

Ciao Livio,
La trovo una cosa abbastanza assurda
Come fai a prevedere dove si sposterà l'utente ? Se vai tramite tastiera puoi creare due combinazioni tasti, una che va in una direzione e l'altra che va nell'altra. Codificandole in questa maniera puoi sapere in base a cosa l'utente premere dove andrà a finire, ma diversamente non si può.

Oppure se si fa con il mouse la cosa è uguale, crea due pulsanti che deve premere l'utente uno per una parte e uno per l'altra.

Non ci sono ancora sensitivi nel mondo IT
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

livio Profilo | Newbie


Quindi se io dalla txt clicco sul check non c'e' modo di sapere quando viene generato l'evento leave sulla txt che sto andando sul check....

Speravo che nel sender o da qualche parte si potesse capire...


Brainkiller Profilo | Guru

>Quindi se io dalla txt clicco sul check non c'e' modo di sapere
>quando viene generato l'evento leave sulla txt che sto andando
>sul check....
>Speravo che nel sender o da qualche parte si potesse capire...

Allora spiega un po' meglio. Perchè dovresti intercettare il Leave ? Che codice dovrebbe girare all'interno del Leave ?
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

livio Profilo | Newbie

Provo a spiegarti un po' meglio....

non so se conosci i componenti c1 cmq volevo utilizzarlo perchè utilizzo la maschera per ottene un codice di 6 lettere/numeri.

l'utente pero' puo' decidere se utilizzare un codice autoincrementante numerico cliccando su un check.

se clicca sul check==manuale azzero la txt e l'utente puo' scrivere a suo piacimento il codice, se poi l'utente completa il codice a metà e sposta il focus su un'altro campo della form il componente c1 da giustamente il messaggio di codice errato.

Il problema nasce quando l'utente clicca sul check == Autoincrementante e la txt non è riempita completamente... il componente c1 da messaggio di errore e fino a che non lo completa non puo' cliccare sul check... io volevo evitare questo. c'e' la possibilità di annullare il messaggio di errore settando alla txt e.ErrorInfo.ShowErrorMessage=false nel validationError della txt ma per fare questo devo capire se dalla txt sto cliccando sul check o da un'altra parte...

Ti avevo chiesto dal leave perche' eventualmente potrei usare una txt normale anche se devo farmi a mano il controllo del mascheramentoma il problema è lo stesso... Posso in qualche modo capire sul leave o validationError da una txt se sto uscendo per andare verso che componente??



Spero di essere stato + chiaro!!!

Grazie dell'aiuto!
Livio

Brainkiller Profilo | Guru

>Il problema nasce quando l'utente clicca sul check == Autoincrementante
>e la txt non è riempita completamente... il componente c1 da
>messaggio di errore e fino a che non lo completa non puo' cliccare
>sul check... io volevo evitare questo. c'e' la possibilità di
>annullare il messaggio di errore settando alla txt e.ErrorInfo.ShowErrorMessage=false
>nel validationError della txt ma per fare questo devo capire
>se dalla txt sto cliccando sul check o da un'altra parte...

Mi sembra che ci stiamo perdendo in un bicchiere d'acqua.
Un bel flow chart ti aiuterebbe sicuramente.

Allora perchè non imponi come condizione che se un utente clicca sull'Autoincrementale automaticamente la TextBox si svuota invece di rimanere riempita a metà ? Ed eventualmente visualizzi un messagebox dove dice "La textbox è stata svuotata perchè conteneva un codice incompleto. Completarla con un codice valido prima di proseguire".

Bisogna cercare nella UI di creare meno problemi all'utente e quindi di racchiudere in compartimenti stagni i vari percorsi che possono essere effettuati.

Che ne pensi ?
Io imporrei che l'utente non possa fare un'operazione di questo tipo, ossia scrivere metà codice e poi cliccare altrove per cambiare tipo di codice. Mi sembra un po' un controsenso.
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

livio Profilo | Newbie

>Allora perchè non imponi come condizione che se un utente >clicca sull'Autoincrementale automaticamente la TextBox si >svuota invece di rimanere riempita a metà ? Ed >eventualmente visualizzi un messagebox dove dice "La >textbox è stata svuotata perchè conteneva un codice >incompleto. Completarla con un codice valido prima di >proseguire".
Magari potessi farlo... perchè quando clicco sul check e quindi esco dal componente c1txt lui in automatico vede che il codice non ha un formato corretto e da l'errore...

Brainkiller Profilo | Guru

>Magari potessi farlo... perchè quando clicco sul check e quindi
>esco dal componente c1txt lui in automatico vede che il codice
>non ha un formato corretto e da l'errore...

spiegami cosa sono questi controlli C1 perchè non lo so.

Programmi con Framework 1.1 o 2.0 ?

Ciao


David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

livio Profilo | Newbie

Framework 1.1...



Comunque i c1 sono componenti della ComponentOne.

Brainkiller Profilo | Guru

>Framework 1.1...
>Comunque i c1 sono componenti della ComponentOne.

Mmhhh... e che funzionalità anno ? Ti consentono di creare delle maschere per l'inputazione dei dati e ti fanno una validazione ?

Sei al corrente che nel .NET framework c'è una classe apposita chiamata ErrorProvider che appunto consente di segnalare visivamente errori di inputazione in una Textbox è molto semplice l'effetto è quello presentato nella screenshot:


472x177 8Kb


ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

livio Profilo | Newbie




sono comodi perchè dai una maschera di input es. AAAAAA
e controlla automaticamente che sia un codice di lettere o numeri e lungo 6...




Quindi hon hai idea come posso fare per capire sul leave di un oggetto chi "ne è la causa"...



ciao

Brainkiller Profilo | Guru

>sono comodi perchè dai una maschera di input es. AAAAAA
>e controlla automaticamente che sia un codice di lettere o numeri
>e lungo 6...

Questo lo puoi fare semplicemente anche con .NET se conosci un po' di Regular Expressions.

Ti ho chiesto se usavi .NET 2.0 perchè lì c'è già un controllo apposito chiamato MaskedEdit che ti permette di creare maschere associate alla textbox.

>Quindi hon hai idea come posso fare per capire sul leave di un
>oggetto chi "ne è la causa"...

L'evento Leave scatta non appena un altro controllo sulla stessa form prende il Focus.
Quindi non so, non credo che sia l'evento che serve a te, o sì ?
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5