PDA

View Full Version : [c#] Component


Ansl72
07-12-2007, 09:52
Salve a tutti, dovrei realizzare un componet per una applicazione windows Mobile 5 in c# (c sharp) ma non ho molta dimestichezza con tale linguaggio di programmazione (sono quasi bianco).
In pratica devo realizzare diversi form che hanno una parte in comune (che dovrebbe essere proprio questo componet) che contiene due label e un bitmap e in pratica quando vengono valorizzate ad es le label queste devo essere chiaramente riportate in tutti i form che contengono questo componet.

Qualcuno può aiutarmi

Grazie
Ansl72

RaouL_BennetH
07-12-2007, 16:27
Se ho capito bene, ti basterebbe trattare il tuo component come una normalissima classe pubblica, nella quale trattare le label e la bitmap come attributi privati. Attraverso le proprietà (mediante get e set) puoi farti restituire di volta in volta il loro valore in base al form che le gestisce.

Per fare un esempio dozzinale:


public class Component
{

private string _label1;
private string _label2;
......

public string Label1;
{
get { return _label1; }
set { _label1 = value ; }
}
......blabla
}

//da un qualsiasi form puoi richiamare la classe e creare l'oggetto Component

Component c = new Component();
c.Label1 = variabileDelForm....



Semprechè io abbia capito qualcosa di quello che intendevi :)

Ansl72
07-12-2007, 16:57
Se ho capito bene, ti basterebbe trattare il tuo component come una normalissima classe pubblica, nella quale trattare le label e la bitmap come attributi privati. Attraverso le proprietà (mediante get e set) puoi farti restituire di volta in volta il loro valore in base al form che le gestisce.

Per fare un esempio dozzinale:


public class Component
{

private string _label1;
private string _label2;
......

public string Label1;
{
get { return _label1; }
set { _label1 = value ; }
}
......blabla
}

//da un qualsiasi form puoi richiamare la classe e creare l'oggetto Component

Component c = new Component();
c.Label1 = variabileDelForm....



Semprechè io abbia capito qualcosa di quello che intendevi :)

scusa sicuramente mi sono espresso male ho parlato di componet ma intendevo user Control creato ad hoc.
Allora vediamo se posso spiegarmi meglio:

in pratica ho due form
1) mainForm
2) subForm

in entrambi ci sono una texBox e un pulsante quello che vorrei fare io e che premendo il pulsante button1 (che stà nel mainForm) la label "lblgruppo" contenuta nel "controllo Intestazione" venga valorizzata con il contenuto della textBox1 (che stà sempre nel mainForm) e questo da entrambi i form e quindi se sono nel mainForm e premo il button1:

(Intestazione è il controllo da me creato)
Intestazione.lblgruppo.text = textBox1.text // pseudocodice

poi se apro il secondo Form (subform) gli passo lo user Control che ho creato in modo tale che la label lblGruppo mantenga il valore che le avevo attribuito con il primo Button1 e se da qui premo il Button2 allora deve accadere che:

Intestazione.lblgruppo.text = textBox2.text // pseudocodice

spero di essere stato un pochino più chiaro :-))))

Grazie ancora
Angelo

RaouL_BennetH
07-12-2007, 17:06
Tieni presente che io sono alle prime armi :) Però vorrei chiederti:

1) "Intestazione" è una classe o l'istanza di una classe? (oggetto)
2) Tu scrivi: Intestazione.lblgruppo.... quindi: .lblgruppo è una "proprietà"?

Anzi, a ripensarci non avresti nemmeno bisogno di due "_label" ma di uno solo:



public class Intestazione
{
private string myFormLabel;

public string MyFormLabel
{
get { return myFormLabel; }
set { myFormLabel = value; }
}
}



Nei form poi diventerebbe:



//nell'evento del bottone del form

Intestazione i = new Intestazione();
i.MyFormLabel = textBox1.Text;

Ansl72
07-12-2007, 17:15
Intestazione e lo user Control che ho creato!
poi ho scritto

Intestazione.lblgruppo.... per rendere l'idea era solo una pseudo codifica

cmq se vuoi ti invio via e-mail i sorgenti di quello che ho fatto
in questo momento sono riuscito bene o male a fare quello che volevo solo
che il controllo che istanzio come oggetto del mainform e lo passo al secondo form non lo vedo!

Angelo