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

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

  1. #1
    کاربر دائمی آواتار saeedjafari
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    تهران
    پست
    151

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

    با درود خدمت دوستان گرامی
    یک فرم اصلی داریم که میخواهیم از طریق این فرم اصلی به فرم های دیگر دسترسی داشته باشیم. با فراخوانی فرم های دیگر این فرم مخفی شود از دید کاربر و بعد از اتمام کار با فرم به فرم اصلی برگردیم تا بتوانیم به فرم های دیگری نیز دسترسی داشته باشیم.
    در این بین دو مشکل وجود دارد :
    1- ما نمیخواهیم در هر فرم از فرم اصلی شی بسازیم و فرم اصلی که مخفی شده است را در هر بار بازگشت از فرم های دیگر به فرم اصلیفراخوانی کنیم.
    2- در ضمن میخواهیم کهدر هر بازگشت به فرم اصلی حافظه نیز آزاد باشد که این اتفاق نمیافتد.
    در عبارت کلی در سوییچ کردن بین فرم ها یک بار فرم اصلی مخفی میشود ما میخوهایم برای هر بار که به فرم های دیگر میرویم و باز مببگردیم همین فرم مخفی شده نمایش داده شود نه اینکه هربار شی ای بسازیم.
    با تشکر از دوستان گرامی

  2. #2

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

    شما يه شئ internal از اون فرم اصليت تو تمام فرم ها بساز بعد قبل از نمايش هر فرمي اونو با this مقدار بده.
    fr.pfrm=this;
    fr.show();
    hide();

    بعدشم وقتي از فرم خواستي به فرم اصليت برگردي
    frm.show();
    close();

  3. #3
    کاربر دائمی آواتار saeedjafari
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    تهران
    پست
    151

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

    با درود دوست گرامی
    در مورد این internal اگر کمی توضیح بدین ممنو نمیشم
    شما فرض کنید ما N ت افرم داریم
    هی میخواهی مبریم به هر فرم اطلاعتتی رو ثبت یا ویرایش کنیم سپس برگردیم به فرم اصلیمون که به هم هفرم های دیگه دسترسی داره

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

    با تشکر

  4. #4

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

    internal يا public تو اين موضوع فرقي نداره و كارتو راه ميندازه، بعدشم جرا حتماً فرم اصلي رو نميخواي نمايش بدي بزار هميشه نمايش داده بشه مثل همه برنامه ها photoshop, office, ...

  5. #5
    کاربر دائمی آواتار saeedjafari
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    تهران
    پست
    151

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

    با درود
    مرسی عزیز
    ما میخواهیم با چندین فرم در تماس باشیم
    فرم اصلی باید مخفی باشه
    جالب نیس فرم اصل نمایش داد هبشه
    راستی حافظه رو آزد ه مباید کنیم

    با تشکر

  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    همین حوالی
    پست
    90

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

    نقل قول نوشته شده توسط saeedjafari مشاهده تاپیک
    با درود خدمت دوستان گرامی
    یک فرم اصلی داریم که میخواهیم از طریق این فرم اصلی به فرم های دیگر دسترسی داشته باشیم. با فراخوانی فرم های دیگر این فرم مخفی شود از دید کاربر و بعد از اتمام کار با فرم به فرم اصلی برگردیم تا بتوانیم به فرم های دیگری نیز دسترسی داشته باشیم.
    در این بین دو مشکل وجود دارد :
    1- ما نمیخواهیم در هر فرم از فرم اصلی شی بسازیم و فرم اصلی که مخفی شده است را در هر بار بازگشت از فرم های دیگر به فرم اصلیفراخوانی کنیم.
    2- در ضمن میخواهیم کهدر هر بازگشت به فرم اصلی حافظه نیز آزاد باشد که این اتفاق نمیافتد.
    در عبارت کلی در سوییچ کردن بین فرم ها یک بار فرم اصلی مخفی میشود ما میخوهایم برای هر بار که به فرم های دیگر میرویم و باز مببگردیم همین فرم مخفی شده نمایش داده شود نه اینکه هربار شی ای بسازیم.
    با تشکر از دوستان گرامی
    1.برای سوییچ کردن بین فرمها شما می تونید به ازای هر فرم فرزند در داخل فرم والد یه Property تعریف کنی
    مثلا فرم فرزند Form2 و فرم والد اسمش Form1 باشه به صورت زیر تعریف میکنید
    یه متغیر private تعریف میکنید برای نگه داری شیء ساخته شده از فرم فرزند به شکل زیر:
    private mForm2

    بعد یه Property می سازید برای اینکه بتونید مقدار متغیر بالا را در موقع نیاز بخونید یا اون رو مقدار دهی کنید


    public Form2 objForm2
    {
    get { return mform2; }
    set
    {
    if (mform2.IsDisposed || mform2 == null)
    mform2 = new Form2();
    }
    }

    بعد موقع فراخوانی مثلا توی رویداد click مربوط به button به صورت زیر عمل کنید

    private void button1_Click(object sender, EventArgs e)
    {

    objForm2 = new Form2();
    objForm2.MdiParent = this;
    objForm2.Show();
    this.Hide();

    }

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

    #region Properties For Control Child Forms
    public Form2 objForm2
    {
    get { return mform2; }
    set
    {
    if (mform2.IsDisposed || mform2 == null)
    mform2 = new Form2();
    }
    }
    #endregion

    2. اما درمورد اینکه شما میخواهید فرم والد مخفی بشه باید بگم این امکان نداره چون با مخفی شدن فرم والد ، فرم های فرزند هم مخفی میشن و دلیلش هم اینه که تمام فرم های فرزند موقع نمایش داخل فرم والد قرار میگیرند بنابراین فرم والد حتماً باید نمایش داده بشه


  7. #7
    کاربر دائمی آواتار saeedjafari
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    تهران
    پست
    151

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

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

  8. #8
    کاربر دائمی آواتار saeedjafari
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    تهران
    پست
    151

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

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

  9. #9
    کاربر تازه وارد آواتار mohammad_cmd
    تاریخ عضویت
    تیر 1390
    محل زندگی
    مشهد
    پست
    47

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

    سلام ، شما هنوز گیر این مشکلی

  10. #10
    کاربر دائمی آواتار saeedjafari
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    تهران
    پست
    151

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

    آخه هر کاری کردیم درس نمیشه
    فکر کن در منوی اصلی 5 تا کلید داری
    به هر منوی دیگه میرو بر میگریدی
    آیا حافظه آزد شده ؟؟
    منوی اصلی که پنهان شده هنوز تو TASK MANAGER نشون داده میشه

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

    با تشکر

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

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