Newsgroup: it.comp.lang.visual-basic
Titolo: Eventi User Control

Salve a tutti,
sto iniziando ad usare VB 2010 versione express edition.
Volevo creare un controllo personalizzati che deriva da button.
Quello che volevo fare per il momento era di aggiungere una proprietà,
e riassumere alcuni eventi: ad esempio gli eventi keydown e mousedown
nell'evento push e gli eventi keyup, mouseup e click nell'evento
release.
Ho creato l'user control ho inserito il seguente codice:
Public Class PLCButtom
    Public Property PLCAddress As String
    Public Event Push(ByVal Address As String)
    Public Event Release(ByVal Address As String)
    Sub New()
        MyBase.New()
        ' Chiamata richiesta dalla finestra di progettazione.
        InitializeComponent()
        ' Aggiungere le eventuali istruzioni di inizializzazione dopo
la chiamata a InitializeComponent().
    End Sub
    Private Sub _Push() Handles MyBase.MouseDown, MyBase.KeyDown
        RaiseEvent Push(_PLCAddress)
    End Sub
    Private Sub _Release() Handles MyBase.MouseUp, MyBase.KeyUp,
MyBase.Click
        RaiseEvent Release(_PLCAddress)
    End Sub
End Class
Ho compilato e nella finestra principale della mia applicazione ho
trascinato il nuovo buttom da me creato.
Nonostante questo, gli eventi da me creati non si scatenano mai, e
neanche quelli "nativi", ho fatto una prova con l'evento click.
Qualcuno cortesemente mi può indicare dove sbaglio?
Grazie a tutti.
Gianluca

 Volevo creare un controllo personalizzati che deriva da button.
ma la tua classe non deriva da nulla.
.m
-- 
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCTS
http://mvp.support.microsoft.com
blog @ 
http://milestone.topics.it
whynot [ at ] topics [ dot ] it

 whynot [ at ] topics [ dot ] it
nella finestra di progettazione ho trascinato un button. Mi sono
accorto che il mio errore era quello di usare mybase, invece dovevo
usare gli eventi di del button inserito.
Adesso il mio codice è questo:
Public Class PLC_Button
    Public Property PLCAddress As String
    Public Event Push(ByVal Address As String)
    Public Event Release(ByVal Address As String)
    Private Released As Boolean
    Sub New()
        MyBase.New()
        ' Chiamata richiesta dalla finestra di progettazione.
        InitializeComponent()
        ' Aggiungere le eventuali istruzioni di inizializzazione dopo
la chiamata a InitializeComponent().
    End Sub
    Private Sub _Push() Handles Button1.MouseDown, Button1.KeyDown
        RaiseEvent Push(_PLCAddress)
    End Sub
    Private Sub _Release() Handles Button1.MouseUp, Button1.KeyUp
        RaiseEvent Release(_PLCAddress)
    End Sub
End Class
Solo che adesso non trovo più la proprietà Text, vuol dire che non è
possibile ereditarla dal controllo button?
Mi scuso se magari non uso i termini corretti, ma sto iniziando adesso
ad occuparmi di programmazione ad oggetti, classi ed ereditarietà..

 possibile ereditarla dal controllo button?
okkio che non stai ereditendo in quel modo stati facendo 
incapsulamento, quindi quello che devi fare è creare una nuova 
proprietà Text e fare il get/set sulla Text del button.
.m
-- 
Mauro Servienti
{C67C0157-5D98-4733-A75E-93CAEE4BADC8}
Microsoft MVP - Visual C# / MCTS
http://mvp.support.microsoft.com
blog @ 
http://milestone.topics.it


Ciao Gianluca,
come ti segnalava Mauro, non stai derivando da button.
Per farlo devi inserire l'istruzione Inherits
Esempio:
Public Class PLCButtom
 
	Inherits Inherits Windows.Forms.Button
....
End Class
Nicola


Grazie mille per i suggerimenti. A risentirci per nuovi dubbi che
sicuramente avrò.