PDA

View Full Version : سوال: ایجاد Show Slide



pesare
پنج شنبه 13 تیر 1392, 09:39 صبح
سلام دوستان

من از داخل بانک عکسهام رو میریزم توی صفحه و با کلید "بعدی" عکس بعدی رو نمایش میدم , میخوام امکان Show Slide هم بزارم , ساده ترین چیزی که به ذهنم رسید اینه که یه Timer بزارم و توی مدتی که معلوم میکنم رویداد کلید "بعدی" رو سر اون تایم صدا کنم , حالا چطوری اینو پیاده کنم؟

sahra76
پنج شنبه 13 تیر 1392, 09:49 صبح
سلام دوستان

من از داخل بانک عکسهام رو میریزم توی صفحه و با کلید "بعدی" عکس بعدی رو نمایش میدم , میخوام امکان Show Slide هم بزارم , ساده ترین چیزی که به ذهنم رسید اینه که یه Timer بزارم و توی مدتی که معلوم میکنم رویداد کلید "بعدی" رو سر اون تایم صدا کنم , حالا چطوری اینو پیاده کنم؟

متوجه آخرای سوالتون نشدم. بیشتر توضیح میدین. قبلا یه چیزایی شبیه این انجام داده بوودم.

pesare
پنج شنبه 13 تیر 1392, 09:58 صبح
میخوام وقتی روی دکمه "Show Slide " کلیک میکنم همش بیاد رویداد کلید "بعدی" رو برام اجرا کنه

sahra76
پنج شنبه 13 تیر 1392, 10:23 صبح
private void ShowSlide_Click(object sender, EventArgs e)
{
this.cmdNext_Click(ShowSlide, e);
}

اینجوری میره رویداد کلیک دکمه next رو اجرا میکنه.

pesare
پنج شنبه 13 تیر 1392, 10:27 صبح
سوال اینه که چطوری روی این رویداد تایمر ست کنم؟


private void ShowSlide_Click(object sender, EventArgs e)
{
this.cmdNext_Click(ShowSlide, e);
}

اینجوری میره رویداد کلیک دکمه next رو اجرا میکنه.

sahra76
پنج شنبه 13 تیر 1392, 10:36 صبح
شما میخواین با زدن ذکمه بعدی عکسهای بعدی رو نشون بده. و با زدن اسلایدشو عکسا خودشون هرچندثانیه یکبار عوض شن درسته؟ اگه منظورتون اینه خب .اقعا نمیفهمم چرا میخواین رویداد دکمه بعدی رو اجرا کنین. خب تو همون دکمه اسالاید شو تو رویداد تایمرش بنویسین. فقط یه متغیری چیزی بذارین که شماره عکسو نگه داره هروقت قبل از اینکه اون چندثانیه طی بشه،دکمه بعدی رو زدین بدونین رو کدوم عکس بوده عکس بعدی رو نشون بدین.

pesare
پنج شنبه 13 تیر 1392, 12:59 عصر
کلا چطوری تایمر ست میشه؟

sahra76
پنج شنبه 13 تیر 1392, 13:20 عصر
تو رویداد کلیک ShowSlide رویداد تایمرو فراخوانی کن. اینجوری


private void timer1_Tick(object sender, EventArgs e)
{
if (a==true)
{
if (textBox1.Text == "")
{
textBox1.Text = "aaa";
}
else
{
textBox1.Text = "";
}
}
}

private void ShowSlide_Click(object sender, EventArgs e)
{
this.timer1_Tick(ShowSlide, e);
a = true;
}
تو این کد، متن تکست باکس هر یک ثانیه یکبار خالی و اضافه میشهو تو به جاش اون کد نمایش عکساتو بذار فک کنم راحت باشه.

pesare
پنج شنبه 13 تیر 1392, 13:37 عصر
من اینجوری نوشتم اما جواب نمیده



private void ShowSlide_Click(object sender, EventArgs e)
{

this.timer1_Tick(btnshowSlide,e);
a = true;
}

private void timer1_Tick(object sender, EventArgs e)
{

if (a == true)
{
try
{
Picture p = new Picture();
p.AR_Fk = Int32.Parse(txtID.Text);
DataTable dt = p.APRPic();
if (dt.Rows.Count > j)
{

MemoryStream ms = new MemoryStream(dt.Rows[j].Field<byte[]>("Pic"));
pictureBox1.Image = Image.FromStream(ms);
j++;
}

else
{
j = 0;
MemoryStream ms = new MemoryStream(dt.Rows[j].Field<byte[]>("Pic"));
pictureBox1.Image = Image.FromStream(ms);
j++;
}
}
catch
{

}
}

sahra76
پنج شنبه 13 تیر 1392, 13:41 عصر
خاصیت Enable مربوط به تایمرو True کردین؟

pesare
پنج شنبه 13 تیر 1392, 13:53 عصر
اونم Enable کردم اما بازم کار نمیکنه

sahra76
پنج شنبه 13 تیر 1392, 13:58 عصر
اونم Enable کردم اما بازم کار نمیکنه

خب لابد از کداییه که واسه نمایش عکسا نوشتین. من از بعضی جاهای کداتون زیادسردرنیاوردم. آخه تازه برنامه نویسی با سی شارپ رو شورع کردم.
این کدا تو رویداد کلیک دکمه بعدی کار میکنه؟

pesare
پنج شنبه 13 تیر 1392, 14:02 عصر
بله , با این کدها که الا توی شو اسلید نوشتم , هر بار که میزنم عکس بعدی رو میاره اما تامرش کار نمیکنه , دستی باید بزنم تا بره عکس بعدی
خب لابد از کداییه که واسه نمایش عکسا نوشتین. من از بعضی جاهای کداتون زیادسردرنیاوردم. آخه تازه برنامه نویسی با سی شارپ رو شورع کردم.
این کدا تو رویداد کلیک دکمه بعدی کار میکنه؟

sahra76
پنج شنبه 13 تیر 1392, 14:10 عصر
به نظزم اشکال از تایمرت نیست ایراد از جای دیگه س. من امتحان کردم همون کدی که فرستادم با کلیک رو دکمه رویداد تایمرش مث ساعت کار میکنه:لبخندساده: و متن تکست باکس روشن خاموش میشه. یه تریس کن ببین.

pesare
پنج شنبه 13 تیر 1392, 14:12 عصر
با این روش حل شد



private void ShowSlide_Click(object sender, EventArgs e)
{
// Instantiate the timer
timer1 = new System.Windows.Forms.Timer();

// Setup timer
timer1.Interval = 1000; //1000ms = 1sec
timer1.Tick += new EventHandler(timer1_Tick);
timer1.Start();
}

private void timer1_Tick(object sender, EventArgs e)
{
try
{
Picture p = new Picture();
p.AR_Fk = Int32.Parse(txtID.Text);
DataTable dt = p.APRPic();
if (dt.Rows.Count > j)
{

MemoryStream ms = new MemoryStream(dt.Rows[j].Field<byte[]>("Pic"));
pictureBox1.Image = Image.FromStream(ms);
j++;
}

else
{
j = 0;
MemoryStream ms = new MemoryStream(dt.Rows[j].Field<byte[]>("Pic"));
pictureBox1.Image = Image.FromStream(ms);
j++;
}
}
catch
{

}

}