Héritage et label

Résolu
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012 - 10 oct. 2010 à 22:12
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012 - 19 oct. 2010 à 21:08
Salut,

je suis un habitué de VB et je me met à C#.

sous VB j'ai l'habitude de créer des classes d'objets contenant des controles avec gestion des évènements. Seulement avec C le mot clef Label me renvoi une erreur que ce soit pour un héritage ou un déclaration:

public Label lab = new Label(); //renvoi l'erreur Erreur 1 Le type ou le nom d'espace de noms 'Label' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)

class mylabel : Label // idem

1)Pourriez vous m'indiquer ou est l'erreur svp.
2) quel est l'équivalent du withevent de VB?


Merci d'avance.
A voir également:

6 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
10 oct. 2010 à 22:48
Salut

As-tu mis un using System.Windows.forms?

Travailles-tu avec vc#2005 ou 2008 ou 2010?
Si Oui il y a normalement des aides peut aider à programmer (soulignement sous la variable
qui font apparaoit un menu contextuel)

Pour la question 2, il n'y pas de withevents en c#


Il faut faire l'abonnement
this.Load += new System.EventHandler(this.Form1_Load);

Permet de s'abonner sur l'evenement Load
et que la fonction.Form1_Load sur cette appel.
http://msdn.microsoft.com/fr-fr/library/ms366768%28VS.80%29.aspx

Ces abonnements sont cachés la plupart du temps dans le .designer (classe partial) de la classe.

Bon dev
3
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012
10 oct. 2010 à 22:59
merci!

Je n'avais pas fait l'appel using ... forms!

Il y a quelques diférences avec VB je vais vite m'habituer!
0
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012
18 oct. 2010 à 15:36
j'ai quand même un souci!

j'ai crée une classe : class link_combotext:Form
elle contient comme variables:
public ComboBox combobox;
public TextBox txt;

lorsque que je selectionne un item de combobox j'agis sur le textBox. et comme ça pour tous les formulaires pour lesquels je voudrais faire le même lien,

1. j'hériterais de la classe link_combotext et je préciserais qui sont ses controles combobox et txt et c'est tout!
public partial class form_reel : link_combotext
public form_reel ()
{
InitializeComponent();
this.combo = this.lecombomitmanuellement;
...
}



ou alors

j'abonne les controles aux evenements (équivalent de withevent)?

j'ai un problème dans les deux cas:
1. la classe link_combotext est moins accessible que form_reel = erreur accessibilité incohérente
2. je ne sait pas où et comment faire "l'abonnement" dans ce cas la.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 oct. 2010 à 15:47
J'ai pas compris la demande.

button1.Click += button1_Click;

Pour l'abonnement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012
18 oct. 2010 à 15:51
en fait j'ai bien trouvé:
//this.Load += new System.EventHandler(this.Form1_Load);
qui est situé dans le .Designer de Form1 et je suppose que pour qu'un Form2 soit abonné aux évènement de Form1 il faut ajouter cette ligne sous le:
//this.Load += new System.EventHandler(this.Form2_Load);
du .designer du form2!

mais ce que je veux savoir c'est s'il est possible de remplacer le "withevent" de vb d'une manière ou d'une autre.

merci d'avance!
0
l0r3nz1 Messages postés 218 Date d'inscription mercredi 20 février 2008 Statut Membre Dernière intervention 17 mars 2012
19 oct. 2010 à 21:08
bien sûr j'avais mal compris!

this.moncontrole_ou_form.evenement += new System.EventHandler(this.lafonctionsievenement);

ça remplace le withevent!

merci nhervagault, j'ai mis du temps à comprendre!
0
Rejoignez-nous