Accéder à une textBox depuis une autre classe

cs_nicolson Messages postés 29 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 28 janvier 2004 - 19 avril 2003 à 00:06
Whismeril Messages postés 19020 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 15 avril 2024 - 14 févr. 2012 à 07:28
Salut tout le monde :)
En fait, je veux rajouter une phrase à une textbox depuis une autre classe que Form1.
Si ma classe Test hérite de Form1, je peux en effet y avoir accès, mais visual studio me sort une exception StackOverFlow (ça concerne la pile apparemment...).

Comment y remédier ?
Merci infiniment !

Nico

5 réponses

cs_nicolson Messages postés 29 Date d'inscription mardi 26 février 2002 Statut Membre Dernière intervention 28 janvier 2004 1
19 avril 2003 à 23:15
Non c'est bon, j'ai trouvé :)
Pour ceux que ça intéresse, j'accède avec ce code au champ Text d'une textBox à partir d'une autre classe (pas d'héritage) :

public class CTest
{
public Form1 MyParentForm; // pour accéder au log de Form1

public void Test()
{
((Form1)MyParentForm).logTextBox.Text = "test";
}
}

Dans la classe Form1 :

private CTest test= new CTest();
public Form1()
{
InitializeComponent();

test.MyParentForm = this; // pour que la classe CTest accède au textBox
}
1
aminescm Messages postés 7 Date d'inscription mercredi 19 octobre 2011 Statut Membre Dernière intervention 9 mai 2012 2
14 févr. 2012 à 03:28
vous devez mettre la propriété "Modifier" de ton composant TextBox à public



private void button1_Click(object sender, EventArgs e)
{

GetOtherFormTextBox();
}

public Form1 otherForm = new Form1();
private void GetOtherFormTextBox()
{
textBox1.Text = otherForm.mlTextBox1.Text;

}
1
Whismeril Messages postés 19020 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 15 avril 2024 656
14 févr. 2012 à 07:28
Bonjour aminescm,
la question avait été posée en 2003, j'espère pour nicolson qu'il avait trouvé depuis.

Whismeril
1
gg00xiv Messages postés 656 Date d'inscription mercredi 22 août 2001 Statut Membre Dernière intervention 11 mars 2005 13
19 avril 2003 à 23:35
tu pouvez tout simplement mettre la proprité "Modifier" de ton composant TextBox à public et d'une autre classe en passant la référence à ta classe Form1, tu ferais : <la reference>.textBox1.Text ...
0

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

Posez votre question
sgazaix Messages postés 2 Date d'inscription lundi 26 novembre 2007 Statut Membre Dernière intervention 7 novembre 2011
26 août 2011 à 01:22
Pour les nerds un peu épais comme moi :
préciser que la classe Form1 doit comporter en plus la ligne
test.Test();


C'était sûrement évident ...

Ce qui nous donne le fichier complet (ne manque que le program.cs standard créé par VS2010)

using System;
using System.Windows.Forms;
namespace class_textboxexterne
{
public partial class Form1 : Form
{
private CTest test = new CTest();// on crée un objet
//test : il en faut au moins 1, sinon, aucun intérêt !
public Form1()
{//constructeur
InitializeComponent();
test.MyParentForm = this; // pour que la classe
//CTest accède au textBox
test.Test();// On lance la méthode test de
//l'objet test (classe CTest)
}

}//fin classe Form1

public class CTest
{

public Form1 MyParentForm; // pour accéder au log de Form1

public void truc()
{Test();
}
public void Test()
{
((Form1)MyParentForm).textBox1.Text = "test";

}// fin void Test
}// fin classe Ctest

}//fin namespace
0
Rejoignez-nous