Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Controllo utente, rendere pubbliche le proprietà dei controlli contenuti.

69 views
Skip to first unread message

luke

unread,
Jun 9, 2011, 8:28:58 AM6/9/11
to
Chiedo scusa se l'argomento è già stato trattato, ma non sono riuscito
a trovare niente cercando nei post precedenti.
Sto usando Visual Basic 2010 Express e mi trovo nella necessità di
aggiungere 2 proprietà ad una TextBox. Quindi ho avviato un nuovo
progetto di libreria di classi, ho aggiunto un nuovo controllo utente,
nella finestra di progettazione ho aggiunto una textbox ed ho scritto
il codice per aggiungere le 2 nuove proprietà che mi occorrono.
Fin qui tutto bene, quello che vorrei è che tutte le altre proprietà
della text box (text, font, textalign, etc.) siano accessibili dal
programma dove utilizzerò, il mio controllo. La via più semplice per
me e quella di riscrivere tutte le proprietà che mi occorrono nel
codice del mio controllo e poi trasferirle alla text box, ma vorrei
sapere se esiste un'altro metodo che mi risparmi un pò di lavoro.

Grazie per avermi letto fin qui
Ciao
Gianluca

Andrea [Work]

unread,
Jun 9, 2011, 8:31:39 AM6/9/11
to
Il Thu, 9 Jun 2011 05:28:58 -0700 (PDT), luke ha scritto:

> Quindi ho avviato un nuovo
> progetto di libreria di classi, ho aggiunto un nuovo controllo utente,
> nella finestra di progettazione ho aggiunto una textbox ed ho scritto

> il codice per aggiungere le 2 nuove proprietą che mi occorrono.
> Fin qui tutto bene, quello che vorrei č che tutte le altre proprietą


> della text box (text, font, textalign, etc.) siano accessibili dal

> programma dove utilizzerņ, il mio controllo. La via pił semplice per
> me e quella di riscrivere tutte le proprietą che mi occorrono nel


> codice del mio controllo e poi trasferirle alla text box, ma vorrei

> sapere se esiste un'altro metodo che mi risparmi un pņ di lavoro.

Puoi creare una classe con

Public Class MyTextBox
Inherits TextBox

' aggiungi le tue proprietą

End Class

luke

unread,
Jun 9, 2011, 8:55:34 AM6/9/11
to
On 9 Giu, 14:31, "Andrea [Work]" <andrea.isworkDELET...@gmail.invalid>
wrote:

> Il Thu, 9 Jun 2011 05:28:58 -0700 (PDT), luke ha scritto:
>
> > Quindi ho avviato un nuovo
> > progetto di libreria di classi, ho aggiunto un nuovo controllo utente,
> > nella finestra di progettazione ho aggiunto una textbox ed ho scritto
> > il codice per aggiungere le 2 nuove propriet che mi occorrono.
> > Fin qui tutto bene, quello che vorrei che tutte le altre propriet

> > della text box (text, font, textalign, etc.) siano accessibili dal
> > programma dove utilizzer , il mio controllo. La via pi semplice per
> > me e quella di riscrivere tutte le propriet che mi occorrono nel

> > codice del mio controllo e poi trasferirle alla text box, ma vorrei
> > sapere se esiste un'altro metodo che mi risparmi un p di lavoro.

>
> Puoi creare una classe con
>
>     Public Class MyTextBox
>         Inherits TextBox
>
> ' aggiungi le tue propriet
>
>     End Class

Caspita che rapidità!!!
Ci avevo già provato, ma non mi riconosce la parola textbox. Penso che
devo aggiungere nei riferimenti qualcosa, ma non so cosa.

Andrea [Work]

unread,
Jun 9, 2011, 9:04:52 AM6/9/11
to
Il Thu, 9 Jun 2011 05:55:34 -0700 (PDT), luke ha scritto:

> Caspita che rapidità!!!
> Ci avevo già provato, ma non mi riconosce la parola textbox. Penso che
> devo aggiungere nei riferimenti qualcosa, ma non so cosa.

System.Windows.Forms.TextBox

Conviene sempre estendere un controllo imho. Lo puoi lasciare base, poi ci
aggiungi funzionalità quando serve, esempio il colore di sfondo al focus o
validazione dei dati.

Una volta fatto devi compilare, poi puoi aggiungerlo al progetto.

luke

unread,
Jun 9, 2011, 10:09:18 AM6/9/11
to
On 9 Giu, 15:04, "Andrea [Work]" <andrea.isworkDELET...@gmail.invalid>
wrote:

> Il Thu, 9 Jun 2011 05:55:34 -0700 (PDT), luke ha scritto:
>
> > Caspita che rapidit !!!
> > Ci avevo gi provato, ma non mi riconosce la parola textbox. Penso che

> > devo aggiungere nei riferimenti qualcosa, ma non so cosa.
>
> System.Windows.Forms.TextBox
>
> Conviene sempre estendere un controllo imho. Lo puoi lasciare base, poi ci
> aggiungi funzionalit quando serve, esempio il colore di sfondo al focus o

> validazione dei dati.
>
> Una volta fatto devi compilare, poi puoi aggiungerlo al progetto.

Scusami se abuso della tua pazienza.
Ho fatto come mi hai detto, ma continua a non permettermi di inserire
la riga che mi hai indicato. Mi dà il seguente errore:

La classe base 'System.Windows.Forms.TextBox' specificata per la
classe 'TextBoxGO' non può essere differente dalla classe base
'System.Windows.Forms.UserControl' di uno degli altri tipi parziali.

Andrea [Work]

unread,
Jun 10, 2011, 3:15:21 AM6/10/11
to
Il Thu, 9 Jun 2011 07:09:18 -0700 (PDT), luke ha scritto:

> Scusami se abuso della tua pazienza.
> Ho fatto come mi hai detto, ma continua a non permettermi di inserire
> la riga che mi hai indicato. Mi dà il seguente errore:
>
> La classe base 'System.Windows.Forms.TextBox' specificata per la
> classe 'TextBoxGO' non può essere differente dalla classe base
> 'System.Windows.Forms.UserControl' di uno degli altri tipi parziali.

Allora aggiungi un modulo di classe (Non un controllo utente) e scrivi:

Public Class MyTextBox
Inherits System.Windows.Forms.TextBox

' aggiungi le tue proprietà

End Class

Se compili poi lo puoi vedere disponibile e trascinabile sui form.

Luke

unread,
Jun 13, 2011, 5:32:58 AM6/13/11
to

"Andrea [Work]" <andrea.isw...@gmail.invalid> ha scritto nel
messaggio news:68i7bcn308j2.1x...@40tude.net...

Ho provato anche questo sistema, ma non sono riuscito poi a visualizzarlo
all'interno del progetto.
Per il momento ho risolto utilizzando la classe usercontrol al posto della
textbox, qualche proprietà me la mostra già, le altre le creo io, ma in
questo modo non sono molte quelle che devo aggiungere.
Grazie mille ancora per l'aiuto
Ciao
Gianluca


Andrea [Work]

unread,
Jun 13, 2011, 9:30:16 AM6/13/11
to
Il Mon, 13 Jun 2011 11:32:58 +0200, Luke ha scritto:

> Ho provato anche questo sistema, ma non sono riuscito poi a visualizzarlo
> all'interno del progetto.

Come ti ho detto devi compilare prima di poterlo vedere.
E poi eventualmente dai componenti lo cerchi e lo aggiungi. Lo vedrai come
un ingranaggio viola

Prova a vedere questo per capirci:
http://nuke.vbcorner.net/Progetti/VBNET/CustomComponentsVB2008/tabid/109/Default.aspx

Sammy jr

unread,
Jun 14, 2011, 2:29:24 AM6/14/11
to

ho cercato di farlo in vb 2008 express
ma non trovo la classe component descritta nell'articolo

è un limite della express?


Andrea [Work]

unread,
Jun 14, 2011, 3:39:45 AM6/14/11
to
Il Tue, 14 Jun 2011 08:29:24 +0200, Sammy jr ha scritto:

>>Come ti ho detto devi compilare prima di poterlo vedere.
>>E poi eventualmente dai componenti lo cerchi e lo aggiungi. Lo vedrai come
>>un ingranaggio viola
>>
>>Prova a vedere questo per capirci:
>>http://nuke.vbcorner.net/Progetti/VBNET/CustomComponentsVB2008/tabid/109/Default.aspx
>
> ho cercato di farlo in vb 2008 express
> ma non trovo la classe component descritta nell'articolo
>
> è un limite della express?

Non so, il concetto è fare un modulo di classe NORMALE, scrivere il codice
con il solo Inherits e compilarla, dovrebbe essere utilizzabile subito la
textbox, altrimenti si prova ad aggiungerla dai componenti.

Sammy jr

unread,
Jun 14, 2011, 4:57:29 AM6/14/11
to

Ti dico come sto facendo
Apro un nuovo progetto - Libreria di Classi

aggungo il riferimento

Public Class clsProva

Inherits System.Windows.Forms.TextBox

End Class

L'errore è
Tipo 'System.Windows.Forms.TextBox' non definito.

Ma tu usi una WindowsApplication?

Andrea [Work]

unread,
Jun 14, 2011, 5:18:35 AM6/14/11
to
Il Tue, 14 Jun 2011 10:57:29 +0200, Sammy jr ha scritto:

> Ti dico come sto facendo
> Apro un nuovo progetto - Libreria di Classi
>
> aggungo il riferimento
>
> Public Class clsProva
>
> Inherits System.Windows.Forms.TextBox
>
> End Class
>
> L'errore è
> Tipo 'System.Windows.Forms.TextBox' non definito.
>
> Ma tu usi una WindowsApplication?

Prova su una WindowApplication, ma io poi le ho spostate anche in una dll e
funzionano (ovviamente per vederle poi nei progetti devi aggiungere da
componenti la dll e spustare i controlli).

Luke

unread,
Jun 14, 2011, 5:32:36 AM6/14/11
to

"Andrea [Work]" <andrea.isw...@gmail.invalid> ha scritto nel
messaggio news:uuo8sejnk0hs.izqz7w5bdtqp$.dlg@40tude.net...

> Il Tue, 14 Jun 2011 10:57:29 +0200, Sammy jr ha scritto:
>
>> Ti dico come sto facendo
>> Apro un nuovo progetto - Libreria di Classi
>>
>> aggungo il riferimento
>>
>> Public Class clsProva
>>
>> Inherits System.Windows.Forms.TextBox
>>
>> End Class
>>
>> L'errore č

>> Tipo 'System.Windows.Forms.TextBox' non definito.
>>
>> Ma tu usi una WindowsApplication?
>
> Prova su una WindowApplication, ma io poi le ho spostate anche in una dll
> e
> funzionano (ovviamente per vederle poi nei progetti devi aggiungere da
> componenti la dll e spustare i controlli).

Guarda grazie al link che mi ha dato Andrea finalmente sono riuscito a
risolvere.

Namespace ControlliGO
Public Class TextBoxGO

Inherits System.Windows.Forms.TextBox

Ho dovuto inserire il tutto in un nuovo Namespace. Cosě il mio nuovo
controllo funziona perfettamente prendendo tutti gli attributi di una classe
textbox.

Quello che adesso non capisco č il perchč...


Sammy jr

unread,
Jun 17, 2011, 2:53:26 AM6/17/11
to

ok
si può fare anche nativamente su un progetto classLibrary
basta aggiungere nei riferimenti System.Windows.Forms (
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll
)


ciao

Andrea [Work]

unread,
Jun 20, 2011, 8:56:25 AM6/20/11
to
Il Fri, 17 Jun 2011 08:53:26 +0200, Sammy jr ha scritto:

> ok
> si pu� fare anche nativamente su un progetto classLibrary


> basta aggiungere nei riferimenti System.Windows.Forms (
> C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll
> )

Si pu� essere.
Io avevo fatto dei controlli in un progetto. Poi ho spostato tutto in una
class library, e ho dovuto sistemare diverse cose, fra cui probabilmente
anche questa che non ricordavo.

0 new messages