PDA

View Full Version : اشکال منطقی این کد چیه؟



sanaz_k
یک شنبه 26 اسفند 1386, 22:49 عصر
من میخوام وقتی روی pictureBox کلیک میکنم اول یک عکس نمایش پیدا کنه بعد از چند ثانیه یک عکس دیگه !
حالا این کد چرا این کارو نمیکنه عکس اولو نشون نمیده بعد از 1000 میلی ثانیه عکس دوم رو نشون میده!


private void pictureBox1_Click(object sender, EventArgs e)
{
pictureBox1.BackgroundImage = btn.Properties.Resources.pic1;
System.Threading.Thread.Sleep(1000);
pictureBox1.BackgroundImage = btn.Properties.Resources.pic2;
}

sinpin
یک شنبه 26 اسفند 1386, 23:04 عصر
من میخوام وقتی روی pictureBox کلیک میکنم اول یک عکس نمایش پیدا کنه بعد از چند ثانیه یک عکس دیگه !
حالا این کد چرا این کارو نمیکنه عکس اولو نشون نمیده بعد از 1000 میلی ثانیه عکس دوم رو نشون میده!


private void pictureBox1_Click(object sender, EventArgs e)
{
pictureBox1.BackgroundImage = btn.Properties.Resources.pic1;
System.Threading.Thread.Sleep(1000);
pictureBox1.BackgroundImage = btn.Properties.Resources.pic2;
}

خب حق داره طفلک ! چون اجازه نفس کشیدن بهش ندادید!
برنامه رو به یکی از دو شکل زیر اصلاح کنید. فکر میکنم در هر دوحالت جواب بده:

private void pictureBox1_Click(object sender, EventArgs e)
{
pictureBox1.BackgroundImage = btn.Properties.Resources.pic1;
Application.DoEvents();
System.Threading.Thread.Sleep(1000);
pictureBox1.BackgroundImage = btn.Properties.Resources.pic2;
}و یا :

private void pictureBox1_Click(object sender, EventArgs e)
{
pictureBox1.BackgroundImage = btn.Properties.Resources.pic1;
pictureBox1.Refresh();
System.Threading.Thread.Sleep(1000);
pictureBox1.BackgroundImage = btn.Properties.Resources.pic2;
}

mohammadkhan
دوشنبه 27 اسفند 1386, 00:08 صبح
منظور از کد زیر چی هست؟



pictureBox1.Refresh();[


و این کد:



Application.DoEvents();


با تشکر

sinpin
دوشنبه 27 اسفند 1386, 02:14 صبح
منظور از کد زیر چی هست؟



pictureBox1.Refresh();[
و این کد:



Application.DoEvents();
با تشکر
با ایجاد یک وقفه ی کوچیک به پیکچرباکس این فرصت رو میده که به ظاهر خودش برسه.