Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - VB.NET - Ritornare valore da controllo utente
Forum - C# / VB.NET - VB.NET - Ritornare valore da controllo utente - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
cassin.simone (Member)
Guru


Messaggi: 1051
Iscritto: 03/06/2009

Segnala al moderatore
Postato alle 17:22
Lunedì, 25/01/2010
Testo quotato

Postato originariamente da brexino:

praticamente, come funziona con i bottoni standard di vb.net,
voglio creare un mio bottone, con tutti i suoi eventi, ovvero (quando il mouse passa sopra, quando il mouse clikka, quando cambia il testo eccc...) senza usare quello standard , ma voglio farlo io, e implementarlo in ogni progetto. capito? in pratica voglio sapere come si può creare un bottone, senza usare quello di default



Lo ammetto: non lo so

PM Quote
Avatar
manvb.net (Member)
Guru


Messaggi: 663
Iscritto: 28/01/2008

Segnala al moderatore
Postato alle 19:37
Lunedì, 25/01/2010
Devi usare le proprietà:

Codice sorgente - presumibilmente VB.NET

  1. Public Property MiaProprieta() As String
  2.         Get
  3.            Return valore
  4.         End Get
  5.         Set(ByVal value As String)
  6.            valore = value
  7.         End Set
  8.     End Property



Dove valore è una variabile che appartiene alla classe dove hai definito la proprietà.
In un altra classe puoi fare:
Codice sorgente - presumibilmente Plain Text

  1. Label1.Text = IstanzaMiaClasse.MiaProprieta


PM Quote
Avatar
cassin.simone (Member)
Guru


Messaggi: 1051
Iscritto: 03/06/2009

Segnala al moderatore
Postato alle 20:55
Lunedì, 25/01/2010
Hehe...manuelino sà tutto :rotfl:

PM Quote
Avatar
manvb.net (Member)
Guru


Messaggi: 663
Iscritto: 28/01/2008

Segnala al moderatore
Postato alle 14:10
Martedì, 26/01/2010
Testo quotato

Postato originariamente da cassin.simone:

Hehe...manuelino sà tutto :rotfl:



:-| -.-'

PM Quote
Avatar
brexino (Normal User)
Newbie


Messaggi: 8
Iscritto: 25/01/2010

Segnala al moderatore
Postato alle 0:20
Mercoledì, 27/01/2010
ho provato il codice postato da manvb.net, ma quando clicco sul controllo in modalita di debug, il controllo, si blocca automaticamente. posto il codice, cosi magari capite meglio

Codice sorgente - presumibilmente VB.NET

  1. Public Class switch
  2.     Public Shared Variabile As String
  3.     Public Property MiaProprieta() As String
  4.         Get
  5.             Return Variabile
  6.         End Get
  7.         Set(ByVal text As String)
  8.             Variabile = text
  9.         End Set
  10.     End Property
  11.     Private Sub switch_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  12.         Button1.Image = My.Resources._ON
  13.     End Sub
  14.     Public Sub Button1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown
  15.         Dim var As Boolean = True
  16.         If var = True Then
  17.             Button1.Image = My.Resources.OFF
  18.             Variabile = "off"
  19.             var = False
  20.         ElseIf var = False Then
  21.             Button1.Image = My.Resources._ON
  22.             Variabile = "on"
  23.             var = True
  24.         End If
  25.     End Sub
  26. End Class



ma dove sbaglio?

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 10:01
Mercoledì, 27/01/2010
Inutile usare una texbox se non devi inserire dati. Piuttosto usa una label. Inutile anche inserire Variabile e var dato che indicano la stessa cosa.
L'idea della proprietà è quella più corretta:
Codice sorgente - presumibilmente VB.NET

  1. Public Class Switch
  2.     'Questa variabile deve essere privata perchè:
  3.     ' - deve essere modificata solo dal codice di questa classe, altrimenti
  4.     '   la si potrebbe impostare senza modificare il controllo;
  5.     ' - deve essere controllata dalla proprietà IsOn; se fosse pubblica, la proprietà
  6.     '   non avrebbe alcun senso.
  7.     'Inoltre NON può essere Shared, poiché sarebbe unica per tutti gli Switch, e impostandone
  8.     'uno su off, anche tutti gli altri accederebbero alla stessa variabile che contiene off.
  9.     Private _IsOn As Boolean
  10.  
  11.     Public Property IsOn() As Boolean
  12.         Get
  13.             Return _IsOn
  14.         End Get
  15.         Set(ByVal value As Boolean)
  16.             _IsOn = value
  17.             ChangeImage()
  18.         End Set
  19.     End Property
  20.  
  21.     Private Sub switch_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  22.         Button1.Image = My.Resources._ON
  23.     End Sub
  24.  
  25.     Private Sub ChangeImage()
  26.        If Me.IsOn Then
  27.           Button1.Image = My.Resources._ON
  28.        Else
  29.           Button1.Image = My.Resources.OFF
  30.        End If
  31.     End Sub
  32.  
  33.     Private Sub Button1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown
  34.        Me.IsOn = Not Me.IsOn
  35.     End Sub
  36. End Class



Inoltre non è necessario che le sub siano pubbliche. Anzi, in questo caso è formalmente scorretto, in quanto rappresentano gestori di eventi e, in quanto tali, costituiscono il codice che "fa funzionare" il controllo e che, quindi, deve rimanere nascosto all'esterno. L'unica cosa che il chiamante può usare è la proprietà IsOn.

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo