PDA

View Full Version : سوال: رسم دایره و انتقال آن



sabzbahareh
دوشنبه 17 آذر 1393, 00:43 صبح
سلام. میخواستم برنامه ای بنویسم که یه دایره بکشه بعد به یه قسمت دیگه از صفحه انتقالش بده... کسی هست کمکم کنه؟

ghossein
دوشنبه 17 آذر 1393, 10:46 صبح
سلام
رسم دایره در هر نقطه از فرم :

private void Form1_MouseMove(object sender, MouseEventArgs e)
{


Graphics g = this.CreateGraphics();
g.Clear(SystemColors.Control);
Rectangle rec = new Rectangle(e.X, e.Y, 80, 80);
g.DrawEllipse(System.Drawing.Pens.Black, rec);
g.Dispose();
}

sabzbahareh
سه شنبه 18 آذر 1393, 10:56 صبح
سلام
رسم دایره در هر نقطه از فرم :

private void Form1_MouseMove(object sender, MouseEventArgs e)
{


Graphics g = this.CreateGraphics();
g.Clear(SystemColors.Control);
Rectangle rec = new Rectangle(e.X, e.Y, 80, 80);
g.DrawEllipse(System.Drawing.Pens.Black, rec);
g.Dispose();
}

سلام. ممنون از جوابتون. این برنامه با موس انتقال میده، درسته؟
من میخوام با خود برنامه انتقالش بده. مثل یه توپ که بالا و پایین میره

ghossein
سه شنبه 18 آذر 1393, 21:41 عصر
سلام
من درست متوجه نمی شوم ، شما می خواهید خودتون دستی مختصات رسم دایره رو بدید. فکر نکنم این کار سخت باشه.
ولی اگه می خواهید مثل توپ بالا و پایین بره :
private void timer1_Tick(object sender, EventArgs e)
{

if (this.Width > i + 80 && this.Height > j + 80)
{
i = i + 10;
j = j + 10;

if (timer1.Interval > 1) timer1.Interval = timer1.Interval - 1;

Graphics g = this.CreateGraphics();
g.Clear(SystemColors.Control);
Rectangle rec = new Rectangle(i, j, 40, 40);
g.DrawEllipse(System.Drawing.Pens.Black, rec);
g.Dispose();

}

else
{

timer2.Enabled = true;
timer1.Enabled = false;

}

}

private void timer2_Tick(object sender, EventArgs e)
{
if((0 < i) && ( 0 < j ))
{
i = i - 10;
j = j - 10;
if (timer2.Interval > 1) timer2.Interval = timer2.Interval - 1;
Graphics g = this.CreateGraphics();
g.Clear(SystemColors.Control);
Rectangle rec = new Rectangle(i, j, 40, 40);
g.DrawEllipse(System.Drawing.Pens.Black, rec);
g.Dispose();


}

else
{

timer1.Enabled = true;
timer2.Enabled = false;

}
}