Oppure

Loading
25/01/10 11:36
brexino
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.
aaa
25/01/10 11:52
cassin.simone
Devi dichiarare (almeno penso) una variabile public (pubblica).
aaa
25/01/10 11:59
brexino
gia fatto, adesso posto il codice:

CONTROLLO :
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
 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.

aaa
25/01/10 12:58
cassin.simone
Evidentemente non hai mai usato le classi prima d'ora. Le sub dovrebbero essere pubbliche come per altro le variabili. :k:
aaa
25/01/10 13:02
brexino
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?
aaa
25/01/10 13:30
cassin.simone
Certo...ti aiuto volentieri (anche perchè io ci ho messo un bel pò a capirle...:D).
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
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:
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).
Dim TuaClasse As New Classe

Dopo di chè devi richiamare le funzioni della classe in questo modo:
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 :rotfl: ).
Ultima modifica effettuata da cassin.simone 25/01/10 13:31
aaa
25/01/10 14:42
brexino
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
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:
form2.text = form1.text


vorrei poter fare cosi dal mio controllo, ovvero accedere ai valori contenuti nelle textbox del controllo, con il form. Non riesco a spiegarmi...
aaa
25/01/10 15:45
cassin.simone
Postato originariamente da brexino:
no, non mi sono spiegato bene[...]
Non riesco a spiegarmi...


Eh già...non ho capito :-|
aaa