Ici, je dois créer un losange en utilisant la méthode drawlines et le faire bouger horizontalement le long d'un chemin à mi-chemin du haut du formulaire.C# - déplace une forme jusqu'à un point situé à mi-hauteur du formulaire
J'ai créé un losange et il se déplace horizontalement, mais je veux qu'il commence à se déplacer à partir d'une position qui est à mi-chemin du haut de la forme.
C'est le code pour créer un diamant,
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
Point p1 = new Point(5+x, 0);
Point p2 = new Point(10+x, 5);
Point p3 = new Point(5+x, 10);
Point p4 = new Point(0+x, 5);
Point[] ps = { p1, p2, p3, p4, p1 };
Pen p_yellow = new Pen(Color.Yellow, 5);
g.DrawLines(p_yellow, ps);
this.BackColor = System.Drawing.Color.DarkBlue;
}
je peux le faire bouger à l'aide de la minuterie et suivant est le code,
private void timer1_Tick(object sender, EventArgs e)
{
if (x < 500)
x += 2;
else
timer1.Enabled = false;
this.Invalidate();
}
s'il vous plaît me dire comment amener le diamant un point qui est à mi-chemin du haut du formulaire?
private void Form1_Paint(object sender, PaintEventArgs e)
{
int height = 10;
int middle = height/2;
int middleform = Form1.height/2;
int diamondMiddleOfTheForm;
diamondMiddleOfTheForm = middleForm - middle;
Graphics g = e.Graphics;
Point p1 = new Point(5 + x, 0 + diamondMiddleOfTheForm);
Point p2 = new Point(10 + x, 5 + diamondMiddleOfTheForm);
Point p3 = new Point(5 + x, 10 + diamondMiddleOfTheForm);
Point p4 = new Point(0 + x, 5 + diamondMiddleOfTheForm);
Point[] ps = { p1, p2, p3, p4, p1 };
Pen p_yellow = new Pen(Color.Yellow, 5);
g.DrawLines(p_yellow, ps);
this.BackColor = System.Drawing.Color.DarkBlue;
}
Il montre une erreur à middleForm = Form1.Height/2
et diamondMiddleOfTheForm = middleForm - middle
Je suis désolé de mon erreur, si je l'ai fait une mise en œuvre de ce que vous avez dit ...
Etes-vous sûr de vouloir utiliser form.Height? Je pense qu'il serait préférable que vous utilisiez form.ClientRectangle.Height, de sorte qu'il semble centré dans la "zone de travail", faute d'un meilleur terme. –
oui. J'oublie toujours ClientRectangle. :) –
oh! Je n'ai jamais utilisé ça ... je vais essayer maintenant ... merci de me donner un indice ... – user324707