Héritage et label [Résolu]

l0r3nz1 221 Messages postés mercredi 20 février 2008Date d'inscription 17 mars 2012 Dernière intervention - 10 oct. 2010 à 22:12 - Dernière réponse : l0r3nz1 221 Messages postés mercredi 20 février 2008Date d'inscription 17 mars 2012 Dernière intervention
- 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.
Afficher la suite 

6 réponses

Répondre au sujet
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 10 oct. 2010 à 22:48
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de nhervagault
l0r3nz1 221 Messages postés mercredi 20 février 2008Date d'inscription 17 mars 2012 Dernière intervention - 10 oct. 2010 à 22:59
0
Utile
merci!

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

Il y a quelques diférences avec VB je vais vite m'habituer!
Commenter la réponse de l0r3nz1
l0r3nz1 221 Messages postés mercredi 20 février 2008Date d'inscription 17 mars 2012 Dernière intervention - 18 oct. 2010 à 15:36
0
Utile
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.
Commenter la réponse de l0r3nz1
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 18 oct. 2010 à 15:47
0
Utile
J'ai pas compris la demande.

button1.Click += button1_Click;

Pour l'abonnement
Commenter la réponse de nhervagault
l0r3nz1 221 Messages postés mercredi 20 février 2008Date d'inscription 17 mars 2012 Dernière intervention - 18 oct. 2010 à 15:51
0
Utile
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!
Commenter la réponse de l0r3nz1
l0r3nz1 221 Messages postés mercredi 20 février 2008Date d'inscription 17 mars 2012 Dernière intervention - 19 oct. 2010 à 21:08
0
Utile
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!
Commenter la réponse de l0r3nz1

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.