Tableaux de contrôles et instanciation des contrôles
3 réponses
Adrien RICHARD
Bonjour à tous,
je désiré réaliser dans une Windows Form un tableau de 9 par 9 TextBox.
L'utilité de les mettre dans un tableau est qu'elle sont aisi indexables.
J'ai réalisé le code suivant que j'ai mis dans le constructeur de ma Form,
mais rien ne s'affiche :
public partial class MainForm : Form
{
private System.Windows.Forms.TextBox[,] Grille;
public MainForm()
{
Grille = new System.Windows.Forms.TextBox[9,9];
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
int x = 51 + (i * 33);
int y = 51 + (j * 33);
this.Grille[i, j] = new System.Windows.Forms.TextBox();
this.Grille[i, j].BorderStyle =
System.Windows.Forms.BorderStyle.FixedSingle;
this.Grille[i, j].Font = new System.Drawing.Font("Microsoft
Sans Serif", 15F, System.Drawing.FontStyle.Bold,
System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Grille[i, j].Location = new System.Drawing.Point(50, 50);
this.Grille[i, j].MaxLength = 1;
this.Grille[i, j].Name = "Grille";
this.Grille[i, j].Size = new System.Drawing.Size(31, 23);
this.Grille[i, j].TabIndex = 2;
this.Grille[i, j].TextAlign =
System.Windows.Forms.HorizontalAlignment.Center;
this.Grille[i, j].Show();
}
}
InitializeComponent();
}
}
Une autre solution que serai plus simple pour moi serai de faire un tableau
de 9*9 d'une classe "Case" et dans chacune de ces class instancier une
TextBox. mais cela ne marche pasnon plus.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Faust
tu n'indique pas le "parent" de tes TextBox: this.Controls.Add(this.Grille[i, j]); (si ma mémoire est bonne)
/_Adrien RICHARD_ a émis l'idée suivante/ :
Bonjour à tous,
je désiré réaliser dans une Windows Form un tableau de 9 par 9 TextBox. L'utilité de les mettre dans un tableau est qu'elle sont aisi indexables. J'ai réalisé le code suivant que j'ai mis dans le constructeur de ma Form, mais rien ne s'affiche :
public partial class MainForm : Form { private System.Windows.Forms.TextBox[,] Grille; public MainForm() { Grille = new System.Windows.Forms.TextBox[9,9]; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { int x = 51 + (i * 33); int y = 51 + (j * 33); this.Grille[i, j] = new System.Windows.Forms.TextBox(); this.Grille[i, j].BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.Grille[i, j].Font = new System.Drawing.Font("Microsoft Sans Serif", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Grille[i, j].Location = new System.Drawing.Point(50, 50); this.Grille[i, j].MaxLength = 1; this.Grille[i, j].Name = "Grille"; this.Grille[i, j].Size = new System.Drawing.Size(31, 23); this.Grille[i, j].TabIndex = 2; this.Grille[i, j].TextAlign = System.Windows.Forms.HorizontalAlignment.Center; this.Grille[i, j].Show(); } } InitializeComponent(); } }
Une autre solution que serai plus simple pour moi serai de faire un tableau de 9*9 d'une classe "Case" et dans chacune de ces class instancier une TextBox. mais cela ne marche pasnon plus.
Merci de vos réponses
Cordialement
-- Mephitiquement votre, Faust ICQ #161252577
tu n'indique pas le "parent" de tes TextBox:
this.Controls.Add(this.Grille[i, j]); (si ma mémoire est bonne)
/_Adrien RICHARD_ a émis l'idée suivante/ :
Bonjour à tous,
je désiré réaliser dans une Windows Form un tableau de 9 par 9 TextBox.
L'utilité de les mettre dans un tableau est qu'elle sont aisi indexables.
J'ai réalisé le code suivant que j'ai mis dans le constructeur de ma Form,
mais rien ne s'affiche :
public partial class MainForm : Form
{
private System.Windows.Forms.TextBox[,] Grille;
public MainForm()
{
Grille = new System.Windows.Forms.TextBox[9,9];
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
int x = 51 + (i * 33);
int y = 51 + (j * 33);
this.Grille[i, j] = new System.Windows.Forms.TextBox();
this.Grille[i, j].BorderStyle =
System.Windows.Forms.BorderStyle.FixedSingle;
this.Grille[i, j].Font = new System.Drawing.Font("Microsoft
Sans Serif", 15F, System.Drawing.FontStyle.Bold,
System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Grille[i, j].Location = new System.Drawing.Point(50,
50); this.Grille[i, j].MaxLength = 1;
this.Grille[i, j].Name = "Grille";
this.Grille[i, j].Size = new System.Drawing.Size(31, 23);
this.Grille[i, j].TabIndex = 2;
this.Grille[i, j].TextAlign =
System.Windows.Forms.HorizontalAlignment.Center;
this.Grille[i, j].Show();
}
}
InitializeComponent();
}
}
Une autre solution que serai plus simple pour moi serai de faire un tableau
de 9*9 d'une classe "Case" et dans chacune de ces class instancier une
TextBox. mais cela ne marche pasnon plus.
tu n'indique pas le "parent" de tes TextBox: this.Controls.Add(this.Grille[i, j]); (si ma mémoire est bonne)
/_Adrien RICHARD_ a émis l'idée suivante/ :
Bonjour à tous,
je désiré réaliser dans une Windows Form un tableau de 9 par 9 TextBox. L'utilité de les mettre dans un tableau est qu'elle sont aisi indexables. J'ai réalisé le code suivant que j'ai mis dans le constructeur de ma Form, mais rien ne s'affiche :
public partial class MainForm : Form { private System.Windows.Forms.TextBox[,] Grille; public MainForm() { Grille = new System.Windows.Forms.TextBox[9,9]; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { int x = 51 + (i * 33); int y = 51 + (j * 33); this.Grille[i, j] = new System.Windows.Forms.TextBox(); this.Grille[i, j].BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.Grille[i, j].Font = new System.Drawing.Font("Microsoft Sans Serif", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Grille[i, j].Location = new System.Drawing.Point(50, 50); this.Grille[i, j].MaxLength = 1; this.Grille[i, j].Name = "Grille"; this.Grille[i, j].Size = new System.Drawing.Size(31, 23); this.Grille[i, j].TabIndex = 2; this.Grille[i, j].TextAlign = System.Windows.Forms.HorizontalAlignment.Center; this.Grille[i, j].Show(); } } InitializeComponent(); } }
Une autre solution que serai plus simple pour moi serai de faire un tableau de 9*9 d'une classe "Case" et dans chacune de ces class instancier une TextBox. mais cela ne marche pasnon plus.
Merci de vos réponses
Cordialement
-- Mephitiquement votre, Faust ICQ #161252577
Herve Chapalain
Il faut rajouter chacun des contrôles à la collection Controls de la Form de base:
Grille = new System.Windows.Forms.TextBox[9,9]; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { ... this.Grille[i, j].Show(); this.Controls.Add(this.Grille[i, j]); // <=*************************** } }
-herve
Il faut rajouter chacun des contrôles à la collection Controls de la Form de
base:
Grille = new System.Windows.Forms.TextBox[9,9];
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
...
this.Grille[i, j].Show();
this.Controls.Add(this.Grille[i, j]); //
<=***************************
}
}