Bonjours à tous,
je suis en train de developpez une application winform en c# sur visual studio 2008, c'est une interface qui contient des boutons chacune se charge de dessiner une forme(cercle, ligne...) quand je clique par le boutton droite sur une cercle par exemple j'ai fait afficher un panel (comme le dialogue boxes) qui demande de l'utilisateur d'entrer le nom de cette cercle mais le problème c'est que l'affichage de ce panel dans un emplacement de la formulaire fait effacer la forme qui été dessiné dans cette endroit( c'est comme un gomme) même si j'ai créé une autre formulaire et je l'ai utiliser comme dialogue boxes au lieu de ce panel j'ai trouver le même problème, je sais pas comment faire :icon_sad:
Merci.

C'est vrai. Et chez nous en Belgique on dit: "Et pour les Flammands la même chose."
This is as far as I know a site that does his communication in English. So why don't you, if you really hope to get some answers to your questions?

Voilà c'est une partie du code éxecutable qui contient ce qui concerne la création des cercles. La formulaire cotient un boutton cercle et 2 textes boxes 1 et 2 pour afficher les coordonnées d'un clique qu'aprés laquelle le cercle traçé et un panel qui contient un label" entrer le nom" et un texteboxe 3 pour taper le nom et un boutton ok pour écrire le nom dejà entré au milieu du cercle positionné ce panel s'affiche suit à un clique par le boutton droite sur une point appatenant au cercle) j'éspere que j'ai bien expliquée et voilà le code:

namespace projet1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
CercleButton.Click += new EventHandler(CercleButton_Click);
}
private void CercleButton_Click(object sender, EventArgs e)
{
this.MouseClick += new MouseEventHandler(Form1_MouseClick);
}
void Form1_MouseClick(object sender, MouseEventArgs e)
{
this.MouseClick -= new MouseEventHandler(Form1_MouseClick);
drawCircle(e.X, e.Y);
textBox1.Text = e.X.ToString();
textBox2.Text = e.Y.ToString();
}
private void drawCircle(int x, int y)
{
Graphics g;
g = CreateGraphics();
Rectangle myRectangle = new Rectangle(x, y, 50, 50);
Pen myPen = new Pen(Color.BlueViolet, 2);
SolidBrush sb1 = new SolidBrush(Color.BlanchedAlmond);
g.FillEllipse(sb1, myRectangle);
g.DrawEllipse(myPen, myRectangle);
g.Dispose(); //libération de l'objet Graphics 
}

private void Form1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right) //le bouton droit de la souris a été utilisée
{
if (textBox1.Text == "")
{
MessageBox.Show("il faut tracer une cercle ");

}
else {
int xc, yc;
double xx = Convert.ToDouble(e.X.ToString());
double yy = Convert.ToDouble(e.Y.ToString());
double xtext = Convert.ToDouble(textBox1.Text);
double ytext = Convert.ToDouble(textBox2.Text);
xc = Convert.ToInt16(xtext.ToString()); 
yc = Convert.ToInt16(ytext.ToString());

if ((xx >= xtext) & (xx <= xtext + 50) & (yy >= ytext) & (yy <= ytext + 50))
{
// pour verifier si le clique droite se fait au niveau du cercle ou pas
panel2.Visible = true;//le panel est affiché
panel2.Location = new Point(xc + 55, yc + 25);//le nom s'écrit à l'interieur du cercle
}
else
{
panel2.Visible = false;//le panel ne s'affiche pas
}
}
}
}
private void OkButton_Click(object sender, EventArgs e)
{
int xc = Convert.ToInt16(textBox1.Text);
int yc = Convert.ToInt16(textBox2.Text);

Graphics g;
g = CreateGraphics();
Rectangle myRectangle = new Rectangle(xc + 8, yc + 15, 50, 20);
g.DrawString(textBox3.Text, new Font("Arial Black", 9), new SolidBrush(Color.Black), myRectangle);
textBox3.Text = "";
panel2.Visible = false;
g.Dispose();
}
}
}

Svp je besoin de votre aide :-(

Edited 6 Years Ago by Nick Evan: n/a

There are some RULES here if you don't abide to them you won't get any help! Believe me if there is one person who is against rules, it is me!
But some rules are needed, example: if a country has no rule on which side of the road to drive, I believe that country has some trouble!
So I abide (at least I try to as much as I can) to the rules of this "country". Hope you will also.
I perfectly understand your French, but I did not read your code because it is not placed in code tags. If you are so stupid not to have read my previous post then I advise that you let your posts first to be translated to English. My native language is not English and it is not French either.

This article has been dead for over six months. Start a new discussion instead.