Creazione di classi standard

mercoledì 09 novembre 2005 - 13.42

lucagtii Profilo | Junior Member

Ciao a tutti,è qulache mese che ho approcciato vb.net e vorrei un consiglio su come crearmi delle classi standard che in fututo potrò riutilizzare per altri progetti.
Premetto che ad esempio mi sono cotruito delle form "base" dalle quali eredito le mie nuove form. Però ad esempio vorrei capire come posso creare ad esempio un textbox che si comporta in un certo modo(esempio sull'evento key_up si sposta alla textbox successiva) e riutilizzarlo in tutte le mie form?


Ciao e grazie ancora

Brainkiller Profilo | Guru

>Ciao a tutti,è qulache mese che ho approcciato vb.net e vorrei
>un consiglio su come crearmi delle classi standard che in fututo
>potrò riutilizzare per altri progetti.
>Premetto che ad esempio mi sono cotruito delle form "base" dalle
>quali eredito le mie nuove form.

Ottimo è una buona soluzione.

>Però ad esempio vorrei capire
>come posso creare ad esempio un textbox che si comporta in un
>certo modo(esempio sull'evento key_up si sposta alla textbox
> successiva) e riutilizzarlo in tutte le mie form?

Mmh... allora riguardo alla TextBox il discorso è uguale a ciò che hai fatto con le Form. Ti puoi creare TextBox derivati da quello principale e puoi poi personalizzarne il comportamento. Relativamente all'esempio che hai fatto però ho alcuni dubbi perchè l'oggetto all'interno del Form ha una sua vita propria, come fa a sapere se nella Form ci sono altri controlli ? E poi come definisci il termine "successiva" ? Successiva per chi ? E' la text box più sotto o la textbox a destra ? E poi entro nel merito che significato ha mettere che come evento KeyUp il focus si sposta in un'altra textbox ? Il risultato sarebbe che dopo aver premuto un carattere il focus si sposta automaticamente sotto (magari è ciò che ti serve ma generalmente nella TextBox si digita testo ben più lungo di un carattere).

Ciao

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

lucagtii Profilo | Junior Member

>Mmh... allora riguardo alla TextBox il discorso è uguale a ciò
>che hai fatto con le Form. Ti puoi creare TextBox derivati da
>quello principale e puoi poi personalizzarne il comportamento.
E' proprio quello che non riesco a fare!
Mi spiego meglio: la mia intenzione è quella di creare una form "base" con dei controlli (es:textbox) che abbiano tutti lo stesso comportamento. Quando dico sul key_up intendo passare al textbox successivo intendo che controllo se il tasto premuto sia l'invio.

>Relativamente all'esempio che hai fatto però ho alcuni dubbi
>perchè l'oggetto all'interno del Form ha una sua vita propria,
>come fa a sapere se nella Form ci sono altri controlli ? E poi
>come definisci il termine "successiva" ? Successiva per chi
>? E' la text box più sotto o la textbox a destra ?

Quando parlo della textbox successiva intendo in ordine di tabindex. Riesco ad avere il controllo successivo con il metodo GetNextControl.

Dim ctrl As Windows.Forms.Control

If e.KeyCode = Keys.Return Then
ctrl = GetNextControl(ctrl, True)
e.Handled = True
If Not ctrl Is Nothing Then
ctrl.Focus()
End If

End If



Brainkiller Profilo | Guru

>E' proprio quello che non riesco a fare!
>Mi spiego meglio: la mia intenzione è quella di creare una form
>"base" con dei controlli (es:textbox) che abbiano tutti lo stesso
>comportamento. Quando dico sul key_up intendo passare al textbox

Ok. Si ve beh, come sai puoi intercettare la pressione di qualsiasi tasto. Dove dubitavo era sulla selezione di un altro controllo, ma la soluzione che hai postato penso sia ottima.

>Quando parlo della textbox successiva intendo in ordine di tabindex.
>
> Dim ctrl As Windows.Forms.Control
>
> If e.KeyCode = Keys.Return Then
> ctrl = GetNextControl(ctrl, True)
> e.Handled = True
> If Not ctrl Is Nothing Then
> ctrl.Focus()
> End If
>
> End If

Ok ottima soluzione. Avevo ignorato questo approccio.

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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5