PDA

View Full Version : سوال: مشکل در کشیدن گرافیگ؟؟؟؟فوری



rasool13
سه شنبه 25 مهر 1391, 15:49 عصر
سلام خسته نباشید من این کد رو مینویسم اما به جای 10 تا دایره فقط 2 تا دایره کشیده میشه چرا اااا؟؟؟

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication8



{


publicpartialclassForm1 : Form



{


public Form1()



{

InitializeComponent();

}


privatevoid button2_Click(object sender, EventArgs e)



{


for (int i = 0; i < 10; i++)



{

createG();

}



}


private void createG()



{


Random rnd = newRandom();

int a = rnd.Next(0, 100);

int b = rnd.Next(0, 100);

int c = rnd.Next(100, 200);

int d = rnd.Next(100, 200);


System.Drawing.Pen myPen = new System.Drawing.Pen(System.Drawing.Color.Red);


System.Drawing.Graphics formGraphics;



formGraphics = form1.CreateGraphics();



formGraphics.DrawEllipse(myPen, newRectangle(a, b, 4, 4));





myPen.Dispose();


formGraphics.Dispose();


}

morteza271
سه شنبه 25 مهر 1391, 16:36 عصر
این کد رو به انتهای تابع تون اضافه کنید درست میشه :

Thread.Sleep(20);

RIG000
سه شنبه 25 مهر 1391, 19:29 عصر
این Thread.Sleep(20); چیکار میکنه ؟
نقش اینجا چیه؟

morteza271
سه شنبه 25 مهر 1391, 19:52 عصر
این Thread.Sleep(20); چیکار میکنه ؟
نقش اینجا چیه؟
من کد دوستمون رو تست کردم و دیدم که بعضی مواقع 2 دایره رسم میشه وبرخی موارد بیشتر و شاید هم یکی!!!
این به نظرم یکی از مشکلات دات نت هست که من تا الان زیاد باهاش برخورد داشتم! و برای اینکه اجرای برخی از دستورات کامل بشه باید کمی منتظر بمونیم وگرنه مشکلاتی از این قبیل بوجود میاد!!!
شما اگه به جای دستور
Thread.Sleep(20);
دستور زیر رو بذارین و کد رو اجرا کنید متوجه می شید:
MessageBox.Show("");

البته من حدس میزنم که این مشکل دات نت هست ولی شاید اشتباه میکنم و اگه بقیه دوستان هم نظری دارن بگن!!