Creation de textbox [Résolu]

Signaler
Messages postés
361
Date d'inscription
jeudi 5 février 2004
Statut
Membre
Dernière intervention
1 octobre 2010
-
Messages postés
361
Date d'inscription
jeudi 5 février 2004
Statut
Membre
Dernière intervention
1 octobre 2010
-
Bonjour je souhaitais une reponse par rapport au post la : http://www.csharpfr.com/infomsg_CREATION-TEXTBOX_377014.aspx
pour créer des textbox dynamiquement car je n'arrive a en faire qu'une seule :/

private
void FactureAjouter_Load(
object sender,
EventArgs e)
{

int xPos = 365;

const
int GAP = 10;

TextBox TextBox =
new
TextBox();
TextBox.Location =
new System.Drawing.
Point(xPos, 70);
xPos += 120 + GAP;
TextBox.Name =
"textBox1";
TextBox.Size =
new System.Drawing.
Size(200, 20);
TextBox.TabIndex = 1;
TextBox.Text =
"";
Controls.Add(TextBox);
}

private
void textBox1_TextChanged(
object sender,
EventArgs e)
{

int xPos = 365;

int yPos = 70;

const
int GAP = 10;

const
int GOP = 25;

TextBox TextBox =
new
TextBox();
extBox.Location =
new System.Drawing.
Point(xPos, yPos);
xPos += 120 + GAP;
yPos += 70 + GOP;
TextBox.Name =
"textBox1";
TextBox.Size =
new System.Drawing.
Size(200, 20);
TextBox.TabIndex = 1;
TextBox.Text =
"";
ontrols.Add(TextBox);
}

Merci.

12 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
private int _currentHeight = 0;





privatevoid
Form_Load(object sender, EventArgs e)
{
   this.CreateTextBox();
}




private
void CreateTextBox()
{
   this._currentHeight += 50;
   TextBox tx = newTextBox();
   tx.GotFocus += newEventHandler(tx_GotFocus);
   tx.Location = newPoint(60, this._currentHeight);
  this.Controls.Add(tx);
}





private
void tx_GotFocus(object sender, EventArgs e)
{
   this.CreateTextBox();
}













<hr size="2" />



-Blog-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Peut-être quelque chose comme ceci :



const



int
NBTEXTBOX = 9;


for
(

int
i = 0; i < NBTEXTBOX; i++)
{
  

TextBox
tx =

new



TextBox
();
   tx.Location =

new



Point
(70, 20 + i * 30);
  

this
.Controls.Add(tx);
}











<hr size="2" />



-Blog-
Messages postés
361
Date d'inscription
jeudi 5 février 2004
Statut
Membre
Dernière intervention
1 octobre 2010

Merci mais non se n'est pas sa :/ car la il crée tout d'un coup les 9 d'un coup hors moi je veux qu'il crée une textbox au moment des le moment ou l'on ecris qqchose dans la précédente.

 
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Bah, ça change pas grand chose. On aurait donc qqch comme ceci :

private
void Form_Load(
object sender,
EventArgs e)
{
  
this.CreateTextBox();
}

private
void CreateTextBox()
{
  
this._currentHeight += 50;
  
TextBox tx =
new
TextBox();
   tx.GotFocus +=
new
EventHandler(tx_GotFocus);
   tx.Location =
new
Point(60,
this._currentHeight);
 
this.Controls.Add(tx);
}

private
void tx_GotFocus(
object sender,
EventArgs e)
{
  
this.CreateTextBox();
}

<hr size="2" />-Blog-
Messages postés
361
Date d'inscription
jeudi 5 février 2004
Statut
Membre
Dernière intervention
1 octobre 2010

Alors moi j'ai fais sa :

private void FactureAjouter_Load(object sender, EventArgs e)
        {
            this.Height += 50;
            TextBox tx = new TextBox();
            tx.TextChanged += new EventHandler(tx_TextChanged);
            tx.Location = new Point(60, Int32.Parse(this.CurrentAutoScaleDimensions.Height.ToString()));
            this.Controls.Add(tx);
        }

private void tx_TextChanged(object sender, EventArgs e)
        {
            int xPos = 50;
            int yPos = 50;

            TextBox tx = new TextBox();
            tx.TextChanged += new EventHandler(tx_TextChanged);
            tx.Location = new Point(xPos, yPos);
            xPos = xPos + 50;
            yPos = yPos + 50;
            this.Controls.Add(tx);
        }

Le soucis etant qu'il me crée bien ma premiere textbox, lorsque je commence a ecrire qqchose dedans il me crée bien la deuxieme mais quand j'ecris dans la deuxième, il ne me crée pas la troisième :s.
Merci de vous interressez à mon cas.
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Utilise le morceau de code que je t'ai donné, ça fonctionne, j'ai testé...

<hr size="2" />-Blog-
Messages postés
361
Date d'inscription
jeudi 5 février 2004
Statut
Membre
Dernière intervention
1 octobre 2010

Je suis sous Visual Studio C# Express et le "this._currentHeight += 50;" et "GotFocus " il a pas l'air de connaitre.
Merci pour ton aide.
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
_currentHeight est une variable de type int déclaré dans la form.
GotFocus est un event qui appartient à la TextBox (peut-être pas dispo avec framework 1.1, je ne sais plus).

<hr size="2" />-Blog-
Messages postés
361
Date d'inscription
jeudi 5 février 2004
Statut
Membre
Dernière intervention
1 octobre 2010

Je suis avec le framework 2, je vais continuer a chercher merci.
Messages postés
361
Date d'inscription
jeudi 5 février 2004
Statut
Membre
Dernière intervention
1 octobre 2010

ne contient pas de definition pour '_currentHeight'. C'est la seul chose qui bloque
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
17
ta troisieme textbox est bien créée mais elle est cachée sous la deuxieme.....modifie la position a chaque fois, pas uniquement une fois (la premiere est en 50;50, toutes les suivantes en 100;100, les une en dessous des autres).
Messages postés
361
Date d'inscription
jeudi 5 février 2004
Statut
Membre
Dernière intervention
1 octobre 2010

Ah bah oui fallait la declarer... desolé. Merci beaucoup. Maintenant faut que je vois pour additionner toutes les valeur des textbox créer mais la je vais chercher. Enorme merci.