application multi-form en C#, simple mais bloqué..

application multi-form en C#, simple mais bloqué.. - C#/.NET managed - Programmation

Marsh Posté le 20-03-2005 à 01:22:08    

bonsoir, je dois programmer une application (je suis étudiant) en C# qui comprends plusieurs Form (5 au total).
 
la Form1 est la principale, et contient 1 tableau (abstrait). La form2 doit pouvoir lire et écrire dans ce tableau, déclaré public dans le code de la Form1, pourtant, rien ne fonctionne.
 
On m'a dit que je devais charger le Form2 avec mon tableau du Form1 en paramètre  //Form2.Show(tableau);
 
mais, j'y capte rien
et on parle de surcharge impossible etc..
 
merci de me lancer sur une piste :)


---------------
ceci est un bloc de texte
Reply

Marsh Posté le 20-03-2005 à 01:22:08   

Reply

Marsh Posté le 20-03-2005 à 15:03:26    

poste le code stp


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 20-03-2005 à 19:28:29    

Déjà, on ne met jamais une variable membre en public ;) Met-là en private, et utilise une fonction pour y accéder (propriété).

Reply

Marsh Posté le 20-03-2005 à 22:33:27    

en fait il n'y a pas de code encore...dsl harkonnen
 
je n'ai que mes formulaire, et je passe de l'un à l'autre sans problème, c'est déja ça !!  
 
Sur le formulaire 2, un textbox doit ajouter de l'information dans un tableau déclaré dans le formulaire 1.
 
 
donc sur le form1 je déclare le tableau et le formulaire 2
 
ca me donne en gros un truc du genre //  
 
string [] tableau ;
 
form2 question = new form2 ;
 
 
sur le clic d'un bouton, je lance le formulaire2 //
 
question.show() ;
 
 
jusque là c'est simple, je clic et le formulaire2 se lance, sauf qu'il n'a pas accès au tableau du form1. Lequel je déclare donc public. Je l'apelle ensuite dans le form2 par la ligne // form1.tableau.... du coup j'ai des erreur d'indice etc...
 
mon moyen n'est donc pas valide comme dis florentG, pourtant, y'a une communication qui se fait, et sur de petit projet scolaire, la technique devrait fonctionner efficacement non ?
 
normalement je m'en sors seul sur l'aide microsoft, mais sur ce coup, je ne sais meme pas quoi taper dans la recherche..
 
merci bien
 


---------------
ceci est un bloc de texte
Reply

Marsh Posté le 20-03-2005 à 23:13:35    

Si tu fais un form1.tableau, c'est normal que ça ne fonctionne pas ;) Il va essayer de trouver la variable static tableau, qui n'est justement pas statique ;)
 
Donc il faut effectivement passer l'objet form1 dans le contructeur de form2 (code en VB.NET) :
 

Code :
  1. Public Class Form1
  2.   Inherits System.Windows.Forms
  3.   private _Tableau() as String
  4.   Public Readonly Property Tableau() as String
  5.     Get
  6.       Return Me._Tableau
  7.     End Get
  8.   End Property
  9.   [.....]
  10.   Public Sub ShowForm2()
  11.     Dim F2 As New Form2(Me)
  12.     F2.Show()
  13.   End Sub
  14. [...]


et dans le Form2

Code :
  1. Public Class Form2
  2.   Inherits System.Windows.Forms
  3.   Private F1 as Form1
  4.   Public Sub New(ByVal F1 As Form1) {
  5.     MyBase.New()
  6.     Me.F1 = F1
  7.   End Sub
  8.   [...]
  9.   Public Sub Exemple()
  10.     Me.F1.Tableau[0] = "Tagada"
  11.   End Sub
  12. [...]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed