نمایش نتایج 1 تا 20 از 20

نام تاپیک: بستن یک فرم و رفتن به فرم بعدی

  1. #1

    Tick بستن یک فرم و رفتن به فرم بعدی

    سلام

    من دو تا فرم دارم که می خوام زمانی که مثلا روی یه باتن از فرم اول کلیک شد، این فرمم بسته بشه و فرم دوم وسم باز بشه. (مثلا اول برنامه که کاربر باید نام کاربری و رمزشو بزنه و بعد این فرم بسته بشه و وارد فضای اصلی برنامه بشه)

    می خواستم ببینم چجوری باید این کارو انجام بدم؟

    من خودم هیچ راهی غیر از Hide کردن فرم اول و Show کردن فرم دوم به ذهنم نرسید. اگر کمکم کنید، ممنون میشم.

    با تشکر

  2. #2
    کاربر دائمی آواتار pesare_ariyayi
    تاریخ عضویت
    مهر 1386
    محل زندگی
    ملودی شهر باران
    پست
    108

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    فکر نمی کنم این کار, ایده آل باشه. شما می تونید تو form load event فرم اصلیتون, فرم اصلیتون رو hide کنید و فرمی رو که اول می خواید نمایش بدید رو show کنید. و اگر user , pass درست بود فرم رو hide یا dispose کنید و فرم اصلی رو نمایش بدید.

  3. #3

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

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

    و ثانیا فکر نمی کنم این اصلا با اصول شئ گرایی مطابقت داشته باشه که ما فرمی رو که احتیاج نداریم، بی خودی تو حافظه نگهش داریم و حافظه هم تازه وسش اختصاص بدیم.

  4. #4

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    this.Dispose();
    GC.Collect();

  5. #5

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    من روش gc را امتحان کردم جواب نداد

    البته با کسب اجازه از دوست عزیزم منم سوالی داشتم که دیدم به این موضوع نزدیکه و از باز کردن تایپیک اضافی جلوگیری کنم
    اگه یه فرم داشته باشیم که username & passWord را بگیره و اتفاقا این فرم اصلیمون باشه چه جوری میشه که با وجود یه کلید در فرم child فرم اصلی را بست تا برنامه کلا بسته بشه

  6. #6

    نقل قول: بستن یک فرم و رفتن به فرم بعدی


    this.Dispose();
    GC.Collect();
    mo.esmp جان میشه بیشتر راجع به اینی که گفتی توضیح بدی.
    اگه یه فرم داشته باشیم که username & passWord را بگیره و اتفاقا این فرم اصلیمون باشه چه جوری میشه که با وجود یه کلید در فرم child فرم اصلی را بست تا برنامه کلا بسته بشه
    درست متوجه نشدم چی میگی. تو یه فرم اصلی داری که می خوای ببندیش؟ خوب مشکلش چیه؟

    اگر می خوای کل برنامت بسته بشه، خوب از ()Application.Exit می تونی استفاده کنی ولی اینکه این فرم دوم چیکارس رو نمی فهمم.

  7. #7

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    فرم دوم رو در فرم اصلی بصورت DialogForm احضار میکنیم
    DialogForm frmDialog = new DialogForm();
    frmDialog.ShowDialog();
    پس از احضار فرم دوم وقتی که کارمون باهاش تمام شد و اون رو Hide کردیم درفرم اصلی
    frmDialog.Dispose();
    GC.Collect();

  8. #8
    کاربر دائمی آواتار bachebahal_1363
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    اینترنت
    پست
    336

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    از دستور زیر در Button مورد نظر استفاده کن .


    Frm_Main frmmain = new Frm_Main();
    frmmain.show();
    this.Close();

  9. #9
    کاربر دائمی آواتار noroozifar
    تاریخ عضویت
    بهمن 1385
    محل زندگی
    کرمان
    پست
    446

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    در فرم اصلی مثلا فرم 1 می نویسی form2 f=new form2()
    f.visibel=true;
    this.clos();
    بعد از اتمام کار در فرم دوم می نویسی form1 g=new form2()
    g.visible=true;
    this.clos();

  10. #10

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    اولا از دوستان که نظراتشون رو میگن تشکر می کنم و ثانیا:
    نقل قول نوشته شده توسط mo.esmp مشاهده تاپیک
    فرم دوم رو در فرم اصلی بصورت DialogForm احضار میکنیم
    DialogForm frmDialog = new DialogForm();
    frmDialog.ShowDialog();
    پس از احضار فرم دوم وقتی که کارمون باهاش تمام شد و اون رو Hide کردیم درفرم اصلی
    frmDialog.Dispose();
    GC.Collect();
    mo.esmp عزیز من باز هم متوجه نشدم. اگر زحمت بکشی و برنامشو وسم بنویسی، خیلی ازت ممنون میشم.
    نقل قول نوشته شده توسط bachebahal_1363 مشاهده تاپیک
    از دستور زیر در Button مورد نظر استفاده کن .
    Frm_Main frmmain = new Frm_Main();
    frmmain.show();
    this.Close();
    bachebahal_1363 جان این کدی که شما نوشتی کار نمیده به خاطر اینکه زمانی که کامپایلر به کد ()frmMain.Show می رسه، میره و وارد لود فرم اصلی میشه لذا فرم لاگین رو نمی بنده و زمانی که کارش توی فرم اصلی تموم شد برمیگرده و این فرم لاگین رو هم می بنده. پس اونی که من می خوام نیست.
    نقل قول نوشته شده توسط noroozifar مشاهده تاپیک
    در فرم اصلی مثلا فرم 1 می نویسی form2 f=new form2()
    f.visibel=true;
    this.clos();
    بعد از اتمام کار در فرم دوم می نویسی form1 g=new form2()
    g.visible=true;
    this.clos();
    جناب noroozifar، اینی هم که شما گفتی اشتباه هستش. به خاطر اینکه خصوصیت visible فرم ها به صورت پیش فرض ture هستش و ما برای نمایشش باید از Show یا ShowDialog استفاده کنیم نه visible اونها.

    بازم از دوستان به خاطر همین اظهار نظرهاشون تشکر میکنم هر چند هنوز به جواب نرسیده.

  11. #11
    کاربر دائمی آواتار bachebahal_1363
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    اینترنت
    پست
    336

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    یه نگاهی به تاپیک زیر بنداز

    بستن یک فرم بوسیله فرم دیگر

  12. #12

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    bachebahal_1363 جان، خیلی ممنونم از این لینکی که دادین. اساتید، خیلی مفصل بحث کرده بودن به خصوص آقای کیانی که پوکوندن. ولی مشکل من رو حل نکرد چونکه اون تاپیک به حاشیه کشیده شد و ...

    لذا از دوستان خواهش می کنم اگه روش درستشو که با اصول OOP و کپسوله کردن تضادی نداره، میدونن؛ خواهش میکنم که بگن تا این مسئله برای من حل بشه.

  13. #13
    کاربر دائمی آواتار bachebahal_1363
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    اینترنت
    پست
    336

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    والا من دقیقا وقت نکردم کل تاپیک رو بخونم اما یه دستور آقای sinpin قرار داده بودند که در زیر می نویسم اما من خودم استفاده کردم جواب نداد شاید خود آقای sinpin بتونن کمک بکنن .

    Application.OpenForms["Form1"].Close();


    دقیقا نمی دونم اما مثل اینکه به یک Access در مورد باز بودن فرم ها احتیاج هست .

  14. #14
    کاربر دائمی آواتار bachebahal_1363
    تاریخ عضویت
    اسفند 1384
    محل زندگی
    اینترنت
    پست
    336

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    روش های زیر رو بکار ببر انشاء الله که جواب بگیری :
    1- خوب به علت اینکه Form1 شما به صورت MainForm و فرمی که در ابتدای برنامه Run می شه که این اطلاعات در واقع در کلاس program تنظیم می شه شما زمانی که فرم دومی رو باز می کنین و فرم اول رو می بندین در واقع کل Application رو می بندین به همین علت برنامه بسته می شه ، در صورتیکه اگر کد زیر رو در فرم دوم و سوم به کار ببرید که MainForm نیستند دقیقا جواب می ده و هیچ مشکلی در برنامه پیش نمیاد در نتیجه باید Form اصلی رو فرم دیگری قرار بدین که در زمان بسته شدن فرم اول فرم بعدی به صورت صحیح نمایش پیدا کنه :

    Form3 frm3 = new Form3();
    frm3.Show();
    this.Close();


    2- روش دوم این هست که فرمی که می خواهید در ابتدای اجرای برنامه نمایش داده بشه رو در کلاس Program به صورت زیر و باز به صورت یک DialogBox نمایش بدین و در صورت صحیح بودن رمز الباقی کارها انجام و فرم اصلی برنامه نمایش داده بشه و در صورت صحیح نبودن Application رو Close کنه :

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;

    namespace Appliction
    {
    static class Program
    {
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(fals e);
    new Form2().ShowDialog();
    Application.Run(new Form1());
    }
    }
    }

  15. #15

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    bachebahal_1363 جان خیلی ممنونم. همونطوری که گفتی
    ... به علت اینکه Form1 شما به صورت MainForm و فرمی که در ابتدای برنامه Run می شه که این اطلاعات در واقع در کلاس program تنظیم می شه شما زمانی که فرم دومی رو باز می کنین و فرم اول رو می بندین در واقع کل Application رو می بندین به همین علت برنامه بسته می شه ...
    و این اشتباه من بود که بهش توجه نداشته بودم و یکی دیگه اینکه من همیشه از ShowDialog استفاده می کردم که در نتیجش نمی شد فرم قبلی رو بست.

    و فکر میکنم که روش دومی هم گفتی، روش کاملا درستی هستش. (از همه ی لحاظ ها)

    و اما در مورد تاپیکی که لینکشو گذاشته بودی؛ من اونو کامل خوندم ولی روشی رو هم که sinpin بهش اشاره کرده بود، تست کردم و کاملا هم درست هستش و اون هم روش جالبی هستش و به کار گیریش هم خیلی سادس. تنها کافی مثلا در رویداد یک باتن در فرم سومی، اون خط کد رو بنویسی تا مثلا فرم دومی بسته بشه.

    public partial class Form3 : Form
    {
    public Form3()
    {
    InitializeComponent();
    }
    private void button1_Click(object sender, EventArgs e)
    {
    Application.OpenForms["Form2"].Close();
    }
    }

    ولی همونطور که گفتم من مشکلم عدم توجه به MainForm بود که شما به اونو به من متذکر شدی که: با بستنش، کل پروژه بسته میشه.

  16. #16

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    نقل قول نوشته شده توسط h.jaza مشاهده تاپیک
    اولا از دوستان که نظراتشون رو میگن تشکر می کنم و ثانیا:

    mo.esmp عزیز من باز هم متوجه نشدم. اگر زحمت بکشی و برنامشو وسم بنویسی، خیلی ازت ممنون میشم.

    bachebahal_1363 جان این کدی که شما نوشتی کار نمیده به خاطر اینکه زمانی که کامپایلر به کد ()frmMain.Show می رسه، میره و وارد لود فرم اصلی میشه لذا فرم لاگین رو نمی بنده و زمانی که کارش توی فرم اصلی تموم شد برمیگرده و این فرم لاگین رو هم می بنده. پس اونی که من می خوام نیست.

    جناب noroozifar، اینی هم که شما گفتی اشتباه هستش. به خاطر اینکه خصوصیت visible فرم ها به صورت پیش فرض ture هستش و ما برای نمایشش باید از Show یا ShowDialog استفاده کنیم نه visible اونها.

    بازم از دوستان به خاطر همین اظهار نظرهاشون تشکر میکنم هر چند هنوز به جواب نرسیده.
    اینم کد
    https://barnamenevis.org/attach...1&d=1220991312
    فایل های ضمیمه فایل های ضمیمه

  17. #17

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    mo.esmp عزیز، این کدی که شما نوشتی چی ارتباطی با مسئله ی من داره. من می خواستم که با باز شدن فرم دومی فرم اولی بسته بشه نه اینی که شما نوشتی. شما فرم دوم رو با this.Close توی خود فرم می بندی و بعد میای و توی ادامه ی فرم اول، اونرو Dispose می کنی. این ارتباطی به کاری که من می خواستم انجام بدم نداشت ولی در کل از شما هم که زحمت کشیدن و نظرتون رو گفتین تشکر میکنم. ضمنا من جوابمو همونطور که تو پست 15 توضیح دادم گرفتم.

    با تشکر از همه ی دوستان

  18. #18
    کاربر دائمی آواتار ozzy_mra
    تاریخ عضویت
    مهر 1388
    محل زندگی
    تهران
    پست
    544

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    سلام
    من میخوام از LOGIN PAge بعد از ورود صحیح رمز وارد صفحه بعد بشم و Login page بسته بشه و فرم بعدی بیاد بالا فرم لاگین فرم main من هستش لطفاً منو راهنمایی کنید

  19. #19
    کاربر دائمی آواتار ozzy_mra
    تاریخ عضویت
    مهر 1388
    محل زندگی
    تهران
    پست
    544

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    سلام
    من میخوام از LOGIN PAge بعد از ورود صحیح رمز وارد صفحه بعد بشم و Login page بسته بشه و فرم بعدی بیاد بالا فرم لاگین فرم main من هستش لطفاً منو راهنمایی کنید

  20. #20

    نقل قول: بستن یک فرم و رفتن به فرم بعدی

    یه نگاهی به طرز کارت بنداز:
    فرم لاگین رو کردی فرم اصلی و فرم اصلی رو کردی فرم ثانویه
    و این کاملا اشتباهه...
    باید فرم لاگین، فرم دومی و فرم اصلی همون فرم اولی باشه و در ادامه تنها کافیه که قبل از فراخوانی فرم اول (فرم اصلی) فرم لاگین رو صدا بزنی و ...

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •