brexino (Normal User)
Newbie
Messaggi: 8
Iscritto: 25/01/2010
|
Ciao, spero che qualcuno riesca ad aiutarmi, vi pongo il mio problema.
Allora, io ho creato un controllo utente in VB.NET, (in dll), praticamente, è un bottone ON/OFF una volta premuto da ON, se lo ripremo, diventa OFF (il testo del bottone intendo). Allora, adesso, voglio riutilizzare questo controllo in altre applicazioni importando la dll. Come faccio a fare ritornare una valore dal controllo che ho creato? Esempio, se quando clicco off sul bottone, come faccio ad accedere ad una variabile che mi consenta poi di modificare un label esterno al controllo?
Spero di essermi spiegato bene.
|
|
cassin.simone (Member)
Guru
Messaggi: 1051
Iscritto: 03/06/2009
|
Devi dichiarare (almeno penso) una variabile public (pubblica).
|
|
brexino (Normal User)
Newbie
Messaggi: 8
Iscritto: 25/01/2010
|
gia fatto, adesso posto il codice:
CONTROLLO :
Codice sorgente - presumibilmente VB.NET |
Public Class switch Dim var As Boolean = True Private Sub switch_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Button1.Image = My.Resources._ON End Sub Private Sub Button1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseDown If var = True Then Button1.Image = My.Resources.OFF value.Text = "off" var = False ElseIf var = False Then Button1.Image = My.Resources._ON value.Text = "on" var = True End If End Sub
|
VALUE, è UNA TEXTBOX NASCOSTA
praticamente, dalla mia applicazione, importo il controllo, ma non riesco ad accedere alla textbox (value.text) del controllo..
esempio
Codice sorgente - presumibilmente VB.NET |
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load If Switch1.value.text = "off" Then Label1.Text = "il controllo è spento" ElseIf Switch1.value.text = "on" Then Label1.Text = "il controllo è acceso" End If End Sub
|
Vi prego, non so più a chi chiedere.
|
|
cassin.simone (Member)
Guru
Messaggi: 1051
Iscritto: 03/06/2009
|
Evidentemente non hai mai usato le classi prima d'ora. Le sub dovrebbero essere pubbliche come per altro le variabili.
|
|
brexino (Normal User)
Newbie
Messaggi: 8
Iscritto: 25/01/2010
|
si, in effetti non sono un maestro, però mi potresti consigliare gentilmente come agire? cosa devo fare di preciso per poter accedere ad una variabile contenuta nel controllo da un'altra applicazione?
|
|
cassin.simone (Member)
Guru
Messaggi: 1051
Iscritto: 03/06/2009
|
Certo...ti aiuto volentieri (anche perchè io ci ho messo un bel pò a capirle...).
Innanzitutto crei una classe (pubblica) e fino a qua pare che le conoscenze per farlo tu le abbia. All'interno di ogni classe ci sono varie sub (non so se la traduzione italiana letterale è procedura...io le chiamo così) che devono essere pubbliche se utilizzate da altre classi.
Ad esempio
Codice sorgente - presumibilmente VB.NET |
Public Class Classe 'Creo una nuova classe pubblica Public Sub Procedura 'Creo una nuova procedura pubblica 'Codice della procedura End Sub 'Chiudo la sub End Class 'Chiudo la classe
|
Quando hai inserito il codice nella classe il gioco è quasi fatto.
- Ricorda di inserire le variabili da utilizzare nel main come public ad esempio:
Codice sorgente - presumibilmente C# / VB.NET |
Public Variabile As String 'Dichiaro una variabile stringa pubblica ovvero utilizzabile da ogni componente del programma
|
Innanzitutto nella classe main (la chiamo così perchè sto studiando c++ ) devi dichiarare la classe in questo modo (in riferimento al codice di prima).
Codice sorgente - presumibilmente C# / VB.NET |
Dim TuaClasse As New Classe
|
Dopo di chè devi richiamare le funzioni della classe in questo modo:
Codice sorgente - presumibilmente Plain Text |
Classe.Procedura() 'Ricorda la parentesi!
|
Spero di esserti stato utile e, nel caso qualcuno ne sappia più di me (ovvero tutti :P) riscontrino qualcosa di sbagliato di avvisarmi e correggere (si, non sono maestro nello spiegare ). Ultima modifica effettuata da cassin.simone il 25/01/2010 alle 14:31 |
|
brexino (Normal User)
Newbie
Messaggi: 8
Iscritto: 25/01/2010
|
no, non mi sono spiegato bene, praticamente, io apro un progetto e inserisco un label e il mio controllo (switch.dll)
dal form, voglio far si che la label ottiene lo stato del controllo, (OFF,ON)
ad esempio
Codice sorgente - presumibilmente Plain Text |
label1.text = switch1.textbox1.text
|
solo che nell'intellisense non compare textbox1.text, quando nel controllo, esiste.
Per spiegarmi meglio, per ottenere dei dati dal form1, con il form2, farei cosi:
Codice sorgente - presumibilmente Plain Text |
vorrei poter fare cosi dal mio controllo, ovvero accedere ai valori contenuti nelle textbox del controllo, con il form. Non riesco a spiegarmi... |
|
cassin.simone (Member)
Guru
Messaggi: 1051
Iscritto: 03/06/2009
|
Postato originariamente da brexino:
no, non mi sono spiegato bene[...]
Non riesco a spiegarmi... |
Eh già...non ho capito |
|
brexino (Normal User)
Newbie
Messaggi: 8
Iscritto: 25/01/2010
|
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
|
|