PDA

View Full Version : سوال: ایجاد یک فرم در سی شارپ



Dictator
یک شنبه 11 بهمن 1394, 12:43 عصر
سلام دوستان من مبتید هستم و دو سوال برام پیش اومده .

من یک فرم اصلی دارم و داخلش یک کلید btn دارم من میخوام وقتی روی btn میزنم یک فرم دیگه نمایش داده بشه ولی داخل فرم اصلی .
منظور این هست یک پنجره جدا باز نشه که هم فرم اصلی دیده بشه و هم فرم جدید میخوام فقط فرم جدید دیده بشه وقتی روی btn میزنم.
لطفا در wpf این مورد رو توضیح دهید .

بعد سوال دیگه ای که دارم اگه بخوام یک متن رو در حد چند خط در فرم جدید بنویسم باید از کنترل lbl استفاده کنم یا اینکه کنترل دیگری هم هست برای نوشتن متن های طولانی به عنوان مثال نوشتن درباره ما داخل نرم افزار.

با تشکر

rooterror
یک شنبه 11 بهمن 1394, 13:01 عصر
سلام برای باز شدن یک فرم جدید و مخفی شدن فرم قبلی میتونید از کد زیر استفاده کنید و سوال دوم فقط از لیبل باید استفاده کنید

form2 f2 = new form2();
f2.show();
this.Hide();

Dictator
یک شنبه 11 بهمن 1394, 14:44 عصر
ممنون از کمکتون :قلب:

بعد اگه بخوام در فرم جدید دکمه بازگشت بزارم که برگرده به فرم اصلی باید چه کاری انجام بدم ؟

zidanerfan
یک شنبه 11 بهمن 1394, 14:47 عصر
this.hide();
برای نمایش فرم وقتی رو کلید کلیک کردی باید فرم اولی مخفی یا بسته نشه بعد در کلید بازگشت در فرم دوم کد بالا رو قرار بده

black_shadow
یک شنبه 11 بهمن 1394, 15:01 عصر
میتونی هم در قسمت فرم لود فرم والد فرم جدید رو فراخوانی کنی به صورت
showdialog()
که ا فرم جدید بسته نشه فرم اولی نمایش داده نمیشه

Dictator
یک شنبه 11 بهمن 1394, 23:58 عصر
میشه در مورد توضیح بدید که چه طوری فرم جدید باز کنم باهاش ؟showdialog()

black_shadow
دوشنبه 12 بهمن 1394, 00:59 صبح
private void btnAddContact_Click(object sender, EventArgs e)
{
Addcontact f_addcontact = new Addcontact();
f_addcontact.ShowDialog();

}

تو اینجا اومده داخل یه دکمه از فرم Addcontact یه نمونه ساخته به نام f_addcontact
و بعدش اون فرم رو نمایش داده با تابع showdialog()
این تابع هم اگه فراخوانی بشه یه فرم یا پنجره رو باز میکنه و تا این فرم یا پنجره بسته نشه کاربر نمیتونه عملیان دیگه انجام بده

اگه توضیحات مشکل داشت به بزرگیتون ببخشید خودمم تازه کار هستم

Dictator
دوشنبه 12 بهمن 1394, 12:41 عصر
تشکر از همه دوستان.

الان فهمیدم که چی کار کنم با توضیحاتی که داده شد.
من با wpf اومدم کار کنم..

من الان یک فرم به نام mainwindow دارم که فرم اصلی هست , و فرم دومم نامش winName هست

کلیدی که در فرم اصلی قرار دادم برای نمایش فرم دومم به صورت زیر هست :


new WinName().Show();
this.Hide();


این کد فرم دوم من رو نمایش میده ولی فرم اصلی مخفی میکنه تا اینجا کار درسته .

در فرم دوم من اومدم برای بازگشت این کار رو کردم که اگه فرم دومم بسته شد باز دوباره فرم اصلی نمایش داده بشه



this.Close();
new MainWindow().Show();


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

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

لطفا در این مورد راهنمایی کنید که باید ی کار کنم که اینطوری نشه ؟

cmsdqq2
دوشنبه 12 بهمن 1394, 23:56 عصر
در FormClosing کد زیر رو قرار بدین:




Application.Exit()


این برای ویندوز فرم هست. برای WPF هم دقیقا یادم نیست اما اگر اشتباه نکنم میشه:



AppDomain.Currect.Shutdown


با این کار، شما میگین که هر موقع فرم بسته شد، برنامه رو کلا ببند