Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3304 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Accès d'objet du Main à partir d'une classe

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Accès d'objet du Main à partir d'une classe

n°1173499
doudala
Posté le 09-08-2005 à 17:56:05  profilanswer
 

Je m'explique.
 
Je suis entrain de créer un logiciel spécifique pour redimensionner les images + upload de ces dernières.
Redimenssionnement nikel, upload nikel sauf... l'affichage du nombre d'octects en cours d'upload.
 
Problème :
J'ai un objet LabelUpload sur le Main (contenu dans Main.cs cad mon interface)
J'ai une class UploadFtp (contenu dans UploadFtp.cs)
 
dans cette classe il y a la fonction Upload() qui contient une boucle pour l'upload qui est la suivante :
 

Code :
  1. while ((bytes = input.Read(buffer, 0, buffer.Length)) > 0)
  2. {
  3. cSocket.Send(buffer, bytes, 0);
  4. }


 
Et j'aimerai changer dans cette boucle la valeur de Label.Upload.Text contenu dans Main...
 
Choses déjà essayées :
- J'ai essayé déclaré un objet bla de la class Main dans la class FtpUpload (Main bla = new Main() + LabelUpload en public) : erreur lors de la compilation lors de la définition de l'objet FtpUpload dans le main (aucunes précisions)
 
- J'ai mis cet objet directement dans la fonction upload() : plus d'erreur mais rien ne s'affiche  :fou:  
 
Je pense que c'est un peu barbare de créer un objet "bla" de Main... quelqu'un a t'il une solution pour accéder à un objet du Main a partir d'une classe ?

mood
Publicité
Posté le 09-08-2005 à 17:56:05  profilanswer
 

n°1175410
ixemul
Nan mais sans blague ! ⚡
Posté le 12-08-2005 à 18:13:16  profilanswer
 

plusieurs solution possibles:
 
premiere, efficace, mais pas tres propre:
 
tu passe la ref du formulaire principal dans le constructeur de ta classe, tu l'attribue à une propriété de ta classe, tu declare ton label en public dans ton formulaire et tu accede au label dans ta boucle par un  
 

Code :
  1. formpassee.labelUpload.text = [ta valeur]


 
L'autre solution, plus classe  :sol: (evident pour un langage objet   [:gui42] )
 
Tu crée un evennement dans ta classe UploadFtp puis un delegué, dans ta classe Main.cs, lorsque tu instancie ton objet de UploadFtp , tu ajoute au eventhandler le gestionnaire que tu veux utiliser pour mettre à jour ton label et le tour est joué ;)
 
Regarde donc dans la doc MSDN pour bien comprendre ce concept d'evennement/delegué qui est TRES puissant en C# :)

n°1175866
doudala
Posté le 13-08-2005 à 23:30:49  profilanswer
 

Ouaw, Evenements / délégués  :pt1cable:  
 
J'avai jamais entendu parlé de ça, très intéressant effectivement, bien qu'un peu compliqué au début ;)
 
Après 1h de théorie j'ai enfin réussi, merci pour la piste :jap:  
 
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Accès d'objet du Main à partir d'une classe

 

Sujets relatifs
Cloner un objet Document [résolu : pas possible]fonction retournant une instance de classe template
[resolu] fermer une fenetre a partir d'un bouton d'un ongletabsolute path d'un objet file
[php] Objet COM pour excel ou wordPartager un objet dans plusieurs fenêtres
graphique généré à partir d'un combobox.classe non reconnue
[JS] savoir si un objet est présent ou pasAccès serveur protocole SOAP & web services
Plus de sujets relatifs à : Accès d'objet du Main à partir d'une classe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR