Salut à tous !
J'ai un petit problème de passage de valeur d'une form à l'autre
J'ai une première form contenant des textbox donc je voudrais accéder à la valeur dans une seconde form mais je ne peut pas car le nom n'est plus connu !
Ma question est donc : comment faire pour que je puisse accéder dans la deuxième form à mes valeurs de la première form ?
ciao
rainbow
__________________________
............ Curtis: RTS 3D .............. ......
........... TeamMoteurProg...........
Salut, il faut que tu changes le Modifiers du TextBox, par exemple internal pour qu'il soit accessible depuis n'importe où dans le même namespace ou alors public pour qu'il accessible de partout.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
Merci
Malheureusement, le problème persiste : j'ai bien mis dans les propriétés de ma textbox public pour Modifier mais dans mon autre fichier de l'autre form il m'affiche toujours
aucun dit : Erreur 1 Le nom 'defaultNameExpe' n'existe pas dans le contexte actuel C:\Documents and Settings\utilisateur\Mes documents\Visual Studio 2005\Projects\Créateur formulaire Mail\Créateur formulaire Mail\Form2.cs 22 34 Créateur formulaire Mail
rappel : le projet contient :
_un fichier form1.cs[design] contenant une textbox nommé defaultNameExpe ayant pour valeur public pour le paramètre Modifier.
_un fichier form1.cs appellant la form 2 lors d'un clic.
_un fichier form2.cs[design] contenant ma deuxième form et une textbox nommée textBox1.
_un fichier form2.cs contenant :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
textBox1.Text += "<!--Code généré par spirit.rainbow.free.fr -->\n";
textBox1.Text += defaultNameExpe;
}
}
}
Merci d'avance
rainbow
__________________________
............ Curtis: RTS 3D .............. ......
........... TeamMoteurProg...........
Il faut que tu préfixes le TextBox par sa Form, il n'existe pas indépendamment de la Form :
textBox1.Text += Form1.defaultNameExpe;
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
merci pour cette réponse rapide donc j'ai modifié la ligne indiquée mais :
aucun dit : Erreur 1 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'WindowsApplication1.Accueil.defaultNameExpe' C:\Documents and Settings\utilisateur\Mes documents\Visual Studio 2005\Projects\Créateur formulaire Mail\Créateur formulaire Mail\Form2.cs 22 34 Créateur formulaire Mail
Je ne comprend plus là
€dit: le nom de ma première fenêtre est en fait Accueil et non form1
€dit €dit : voici maintenant le contenu de form2.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
textBox1.Text += "<!--Code généré par spirit.rainbow.free.fr -->\n";
//if (Accueil.demandeNameExpe == true)
textBox1.Text += Accueil.defaultNameExpe;
}
}
}
__________________________
............ Curtis: RTS 3D .............. ......
........... TeamMoteurProg...........
Salut, comme le dit alaa_85, Accueil est la classe qui définit la fenêtre, ce n'est pas l'instance de la classe, il faut que tu utilises l'objet et non la classe, le mieux est de la passer en paramètre de la méthode, mais pas de la méthode Load, parce que tu ne peux pas changer sa signature.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu].
Voila moi j'ai une première form ("NouvelleIntervention") qui est composé de comboBox, de TextBox... et je souhaiterais également insérer les valeurs dans une deuxième form("Form2") qui s'ouvrira via un bouton.
J'ai mis ça comme code dans ma deuxième form :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace SuiviClient_DistribInfo
{
/// <summary>
/// Description résumée de Form2.
/// </summary>
public class Form2 : NouvelleIntervention
{
private System.Windows.Forms.Label NumInter;
/// <summary>
/// Variable nécessaire au concepteur.
/// </summary>
private System.ComponentModel.Container components = null;
public Form2()
{
//
// Requis pour la prise en charge du Concepteur Windows Forms
//
InitializeComponent();
}
/// <summary>
/// Nettoyage des ressources utilisées.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Code généré par le Concepteur Windows Form
/// <summary>
/// Méthode requise pour la prise en charge du concepteur - ne modifiez pas
/// le contenu de cette méthode avec l'éditeur de code.
/// </summary>
private void InitializeComponent()
{
this.NumInter = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// NumInter
//
this.NumInter.Location = new System.Drawing.Point(32, 56);
this.NumInter.Name = "NumInter";
this.NumInter.Size = new System.Drawing.Size(64, 16);
this.NumInter.TabIndex = 0;
//
// Form2
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(368, 342);
this.Controls.Add(this.NumInter);
this.Name = "Form2";
this.Text = "Form2";
this.Load += new System.EventHandler(this.Form2_Load);
this.Controls.SetChildIndex(this.NumInter, 0);
this.ResumeLayout(false);
}
#endregion
private void Form2_Load(object sender, System.EventArgs e)
{
NumInter.Text += NvleInter.NumInter;
}
}
}
Mais cela ne fonctionne pas. Il m'afiche els erreurs suivantes :
Aucun dit : C:\Documents and Settings\fils\Mes documents\Visual Studio Projects\SuiviClient_DistribInfo\Form2.cs(17): Le mot clé new est requis sur 'SuiviClient_DistribInfo.Form2.NumInter', car il masque le membre hérité 'SuiviClient_DistribInfo.NouvelleIntervention.NumInter'
C:\Documents and Settings\fils\Mes documents\Visual Studio Projects\SuiviClient_DistribInfo\Form2.cs(82): Le type ou le nom d'espace de noms 'NvleInter' est introuvable (une directive using ou une référence d'assembly est-elle manquante ?)
Avez-vous une idée du pourquoi??
Puis ce que je comprend pas du tout, c'est que dans ma "form2", les textBox, comboBox... de ma première forms("NouvelleIntervention") s'affiche ce qui n'est pas normal!!LOL.