Newsgroup: it.comp.lang.visual-basic
Titolo: [.NET] Creazione Oggetti

Salve a tutti,
sono entrato da poco nel magico mondo di 
vb.net
 e sto cercando di creare un
oggetto che simuli una plulsantira.
Fino al creazione nn h avuto problemi, ovverro dentro un oggetto di tipo
panel ho aggiunto una proprietà AddControl che mi agguinge runtime dei check
box di grafica tipo bottoni:
Public Sub AddControl(ByRef Caption As String, Optional ByRef ToolTipText As
String = "")
        Dim TipTool As New System.Windows.Forms.ToolTip
        Chk = New System.Windows.Forms.CheckBox
        With Chk
            .Name = Caption
            .Text = Caption
            .TextAlign = System.Drawing.ContentAlignment.MiddleCenter
            .Size = New System.Drawing.Size(64, 24)
            .Appearance = System.Windows.Forms.Appearance.Button
            .Font = New System.Drawing.Font("Microsoft Sans Serif", 12.0!,
System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point,
CType(0, Byte))
            .AutoCheck = False
            TipTool.SetToolTip(Chk, ToolTipText)
        End With
 
Adesso il problema che nn riesco a risolvere è come gestire il click dei
check creati; ovvero al click mi devono tornare come valori la caption e il
tooltiptext ? (che mi serviranno per inserirle in una list box, o dbgrid
ancora devo decidere) Mi potete aiutare? Grazie a tutti per la disponibilità
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

Dai un occhiata ad AddHandler...
-- 
Corrado Cavalli [Microsoft .NET MVP-MCP]
UGIdotNET - 
http://www.ugidotnet.org
Weblog: 
http://blogs.ugidotnet.org/corrado/

 Dai un occhiata ad AddHandler...
Gli ho dato un occhiata ma nn saprei dove indirizzarlo.
La cosa che mi sfugge fondamentalmente è come una volta compilato, metto
l'oggettino ("parolone") nella form creo i miei check e poi come faccio a
sapere quale check ho premuto... :'(


 sapere quale check ho premuto... :'(
Per poter utilizzare AddHandler devi aver definito, da qualche parte nel 
codice, una routine il cui prototipo e' compatibile con l'evento Click, 
oppure CheckedChanged di un checkbox, ovvero:
Private Sub UnNomeAPiacere(ByVal sender As System.Object, _
    ByVal e As System.EventArgs)
    '[il tuo codice di gestione]
End Sub
a questo punto, dopo aver chiamato in fase di inizializazione AddHandler per 
ciascuno dei tuoi controlli, l'evento verra' gestito dalla routine suddetta. 
Come tutte le routine evento, ha un parametro "sender" che dovrebbe 
accenderti un campanellino...
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown 


Innanzitutto Grazie Luca la tua spiegazione č stata esauriente; se č
possibile e se hai tempo nn č che mi potresti postare un piccolo esempio su
come gestirlo, son o nuovo nella programmazione .net e alcuni concetti
ancora mi sfuggono.
Se nn puoi grazie lo stesso ci proverņ quanto prima.


 Se nn puoi grazie lo stesso ci proverņ quanto prima.
Non serve molto piu' di quello che hai fatto; in fondo alla tua routine
AddControl aggiungi
AddHandler Chk.Click, AddressOf IlMioClick
Me.Controls.Add(Chk)
e definisci quindi un'altra routine del tipo
Private Sub IlMioClick(ByVal sender As System.Object, _
    ByVal e As System.EventArgs)
    'tutti i checkbox aggiunti condividono la stessa routine evento,
    'sender indica quale istanza, di volta in volta, ha scatenato la
    'chiamata attuale
    Dim Chk As CheckBox = DirectCast(sender, CheckBox)
    Debug.WriteLine(String.Format("hai cliccato sul checkbox {0}",
Chk.Name))
End Sub
guarda la guida di AddHandler, e il link nella stessa pagina 'Events and
Event Handlers' per i dettagli.



Grazie molto gentile


L'aiuto che mi hai dato mi ha illuminato ma c'è un'ultima cosa (spero) che
nn capisco.
Inserisco l'oggetto nella form di test, scrivo quante check voglio creare e
li crea tranquillamente.
In più ho aggiunto una textbox (sempre per prova) dove devo scrivere il
tooltiptext (penso) all'evento click della check appena creata. E qui mi si
incasina tutto. Ti prego help. Lo scopo di tutto ciò alla fine è creare una
sorta di pulsantiera (dove i finti pulsant rimangono abbassati) che
aggiungerà in una listbox gli esami scelti (il check rimane premuto) e se
l'utente ci riclicca sopra verrà tolto.
Spero di essere stato chiaro ancora Grazie. Ti posto il codice della form di
test:
CheckScroll è il nome dell'oggetto
'creo i check
        Dim I As Integer
        For I = 1 To 10
            Call CheckScroll1.AddControl("WW" & CStr(I), "pippo" & CStr(I))
            CheckScroll1.ControlsCount = I
        Next
Adesso se volessi dire che all'evento click del cxheck che ho premuto
Text1.text = Checkpremuto.TooltipText ????
NN ci riesco
Grazie



Grazie
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/