cs_nicolson
Messages postés29Date d'inscriptionmardi 26 février 2002StatutMembreDernière intervention28 janvier 2004
-
19 avril 2003 à 00:06
Whismeril
Messages postés19028Date d'inscriptionmardi 11 mars 2003StatutNon membreDernière intervention24 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...).
cs_nicolson
Messages postés29Date d'inscriptionmardi 26 février 2002StatutMembreDernière intervention28 janvier 20041 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
}
gg00xiv
Messages postés656Date d'inscriptionmercredi 22 août 2001StatutMembreDernière intervention11 mars 200513 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 ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
sgazaix
Messages postés2Date d'inscriptionlundi 26 novembre 2007StatutMembreDerniè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";