PDA

View Full Version : سوال: جا به جایی بین فرم



ftbh1999
دوشنبه 22 دی 1399, 18:01 عصر
https://s16.picofile.com/d/8420991592/8405d605-9ab0-4429-b9b3-b4726470c0ac/learn_CSharp.rar
سلام من توی فایل بالایی که گذاشتم وقتی روی lesson1 میزنم میره رو فرم دومی و وقتی continue اخری رو میزنم میخوام برگرده رو فرم اصلی که برمیگرده ولی وقتی ذوباره رو lesson1میزنم ارور میده چه کدی باید بزنم تا این ارور نده دیگ؟

the king
دوشنبه 22 دی 1399, 19:05 عصر
https://s16.picofile.com/d/8420991592/8405d605-9ab0-4429-b9b3-b4726470c0ac/learn_CSharp.rar
سلام من توی فایل بالایی که گذاشتم وقتی روی lesson1 میزنم میره رو فرم دومی و وقتی continue اخری رو میزنم میخوام برگرده رو فرم اصلی که برمیگرده ولی وقتی ذوباره رو lesson1میزنم ارور میده چه کدی باید بزنم تا این ارور نده دیگ؟
ساختاری که طراحی کرده اید یک مشکل اساسی داره. دائم دارید کنترل میسازید و مخفی می کنید.
اون فیلد l (از نوع lessons) دفعه اولی که روی lesson 1 کلیک کردید شامل یک سری کنترل شده که بجز سری آخر بقیه رو مخفی شون کرده اید. هستند ولی مخفی هستند.
الان میخواهید وقتی برای بار دوم روی lesson 1 کلیک شد از سر یکسری کنترل دیگه داخل فیلد l ایجاد کنید؟

هر بار که روی lesson 1 کلیک شد یک شیء جدید در l قرار بدهید، فرم اصلی رو هم Close نکنید، همون Hide که اول کار می کنید کفایت می کنه.

//lesson1-1
private void btnlesson1_Click(object sender, EventArgs e)
{
l?.Dispose();
l = new lessons();
this.Hide();
.
.
.
l.Controls.Add(btnnext);
btnnext.Click += new EventHandler(test1);

l.ShowDialog();
//this.Close();
}


در backtohome هم اون l رو Dispose کنید و فرم اصلی رو Show کنید :

private void backtohome(object sender, EventArgs e)
{
//l.Hide();
l.Dispose();
this.Show();
//this.ShowDialog();
}


اگر با UserControl ها کار کنید دیگه بصورت ویژوال ظاهر test1 و lesoon1_2 و ... رو طراحی می کنید و دیگه نیاز نمیشه برای طراحی اجزاء اون فرم اون همه کد بنویسید.

ftbh1999
دوشنبه 22 دی 1399, 19:51 عصر
خیلی ممنوننن

برا UserControl تاحالا باهاش کار نکردم میشه یک نمونه ازش بدین

the king
سه شنبه 23 دی 1399, 05:11 صبح
خیلی ممنوننن

برا UserControl تاحالا باهاش کار نکردم میشه یک نمونه ازش بدین

به اون Pages تعریف شده در UserControlPages و روال متد های pichome_Click و picback_Click و btnnext_Click توجه کنید :

https://s16.picofile.com/file/8421043518/learn_CSharp.rar.html

http://uplod.ir/sb3d4jvr8d3v/learn_CSharp.rar.htm