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

نام تاپیک: فرمی كه زير همه ی فرم های ديگه باشه

  1. #1

    فرمی كه زير همه ی فرم های ديگه باشه

    چطوری ميشه يه فرم هميشه زير فرم های ديگه باشه. ( حتی در زمانی كه اكتيو شده )

  2. #2

    نقل قول: فرمی كه زير همه ی فرم های ديگه باشه

    ?????????????

  3. #3

    نقل قول: فرمی كه زير همه ی فرم های ديگه باشه

    ببین سوالت رو نمی فهمم . ولی دقیق بگو می خواهی چی کار کنی.....
    تو می خواهی که یه فرم ام دی آی بزاری و بعد روش هم چند تا آیکون بزرگ پایین بزاری که زیبا تر به و بعد هه کاراتو بکنی و .......
    ببین یه فرم اصلی درست کن
    بعد بقیه ی فرم ها رو با show dialog ویا topmost=true باز کن
    مشکلت حل میشه .

  4. #4

    نقل قول: فرمی كه زير همه ی فرم های ديگه باشه

    بعد بقیه ی فرم ها رو با show dialog ویا topmost=true باز کن
    راه چندان جالبی نيست.

    مثلا Desktop رو فرض كنيد.
    كل صفحه يك فرم MDI هست. كه نوار TaskBar رو اون فرم MDI قرار داره و Dock نوار TaskBar برابر Buttom هست. ( البته در حالت عادی ) صفحه دسكتاپ هم يه فرم ديگه هست كه به عنوان يك فرم فرزند به فرم MDI اضافه شده كه مقدار WindowState آن برابر Maximize است.
    حالا صفحه Desktop فرمی هست كه زير همه ی فرم های ديگه قرار داره. منظورم از صفحه Desktop مكانی هست كه Icon ها روی اون قرار دارند. تو عكس فضای داخل قسمت مشخص شده رو ميگم.

    من هم می خوام يه چيزی شبيه به Desktop درست كنم برای يكی از برنامه هام.
    عکس های ضمیمه عکس های ضمیمه

  5. #5

    نقل قول: فرمی كه زير همه ی فرم های ديگه باشه

    بینید این کار تو Vb6 به راحتی انجام میشه ولی تو .net نمیشه
    باید بتونی با sendtoback کار کنی که واقعیتش من نمی تونم اونو کنترل کنم.. امتحانش کن

  6. #6

    نقل قول: فرمی كه زير همه ی فرم های ديگه باشه

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


    Form2 frm=new Form2()
    frm.topmost=true
    frm.show

  7. #7

    نقل قول: فرمی كه زير همه ی فرم های ديگه باشه

    از كمك همه دوستان تشكر می كنم.

    اگه بتونی یه کاری کنی که فرم اصلی ثابت بمونه و مینیمایز و ماکسی مایز نشه topmost بهترین گزینست.
    استفاده از Topmost مشكلاتی رو داره. مثل اينكه اگر چند فرم فرزند با هم باز شده باشند يكی بر ديگری برتری داره. يعنی هميشه روی ديگری قرار داره و من نمی خوام اين مشكل به وجود بياد.

    باید بتونی با sendtoback کار کنی که واقعیتش من نمی تونم اونو کنترل کنم
    تو فكرش بودم، ولی يه مشكلی داره. ميشه در رويداد اكتيو فرم اصلی كه قراره زير همه ی فرم های ديگه بمونه از Sendtoback استفاده كرد. ولی توی اين برنامه من تايمر های زيادی وجود داره كه سه تای اون ها دائما در حال اجرا هستند كه دوتاشون با سرعت 1 ميلی ثانيه و يكی ديگه با سرعت يك دقيقه در حال كار هستند. واسه همين سرعت برنامه تا حدی كند شده و تا بياد فرم رو Sendtoback كنه كلی طول ميكشه.

    البته يه راه ديگه هم هست و اون اينه كه به جای استفاده از يك فرم فرزند برای صفحه Desktop از يك UserControl استفاده كرد و اون رو توی فرم اصلی قرار داد و Dock اون رو برابر Fill كرد. ولی اينجا هم يه مشكلی كه وجود داره، اينه كه فرم های فرزند زير كنترل های فرم MDI قرار می گيرند. خوب حالا بايد چی كار كنم كه فرم های فرزند بيان روی كنترل ها؟

    برای حل مشكل بالا فعلا يه راه پيدا كردم كه خود اين راه هم مشكلاتی داره. اگر فرم اصلی يك فرم MDI نباشه مشكل بالا حل ميشه. ولی در زمان Hide شدن فرم اصلی فرم های ديگه سر جای خودشون باقی ميمونن. اگه بشه همه ی فرم های برنامه رو Hide كرد اين مشكل حل ميشه.

    مشكل ديگه هم وجود داره. فرم MDI توش حالت 3D ( فرو رفتگی ) داره. بايد چی كار كنم تا اون مشكل هم حل شه و به حالت عادی‌ برگرده؟
    آخرین ویرایش به وسیله Armin060 : سه شنبه 09 تیر 1388 در 10:47 صبح

  8. #8

    نقل قول: فرمی كه زير همه ی فرم های ديگه باشه

    نقل قول نوشته شده توسط Armin060 مشاهده تاپیک



    استفاده از Topmost مشكلاتی رو داره. مثل اينكه اگر چند فرم فرزند با هم باز شده باشند يكی بر ديگری برتری داره. يعنی هميشه روی ديگری قرار داره و من نمی خوام اين مشكل به وجود بياد.

    ببینید این مشکل که شما میگین مربوط به showdialog هستش ... تا حالا topmost رو امتحان کردین .؟ به بار هم برین با topmost امتحان کنید مشلتون حل میشه ...مطمئن باشین.

  9. #9

    نقل قول: فرمی كه زير همه ی فرم های ديگه باشه

    ببینید این مشکل که شما میگین مربوط به showdialog هستش ... تا حالا topmost رو امتحان کردین .؟ به بار هم برین با topmost امتحان کنید مشلتون حل میشه ...مطمئن باشین.
    خودم هم دارم به اين نتيجه ميرسم كه Topmost بهترين راهه، ولی اون وقت اگر بخوام يه فرم هميشه روی فرم های ديگه باشه مشكل پيش مياد. البته می دونم بايد از Dialog استفاده كرد ولی وقتی كه يه فرم به صورت Dialog باز ميشه اون وقت كاربر فقط ميتونه از اون فرم استفاده كنه و از فرم های ديگه نمی تونه استفاده كنه.
    اون فرمی هم كه قراره هميشه روی فرم های ديگه باشه تقريبا مثل TaskManager هست.
    كاربر بايد به هنگام كار از اون فورم اطلاعاتی رو ببينه.

  10. #10

    نقل قول: فرمی كه زير همه ی فرم های ديگه باشه

    نقل قول نوشته شده توسط Armin060 مشاهده تاپیک
    خودم هم دارم به اين نتيجه ميرسم كه Topmost بهترين راهه، ولی اون وقت اگر بخوام يه فرم هميشه روی فرم های ديگه باشه مشكل پيش مياد. البته می دونم بايد از Dialog استفاده كرد ولی وقتی كه يه فرم به صورت Dialog باز ميشه اون وقت كاربر فقط ميتونه از اون فرم استفاده كنه و از فرم های ديگه نمی تونه استفاده كنه.
    اون فرمی هم كه قراره هميشه روی فرم های ديگه باشه تقريبا مثل TaskManager هست.
    كاربر بايد به هنگام كار از اون فورم اطلاعاتی رو ببينه.
    لطفاً اگه تونستین کاری بکنین به من هم بگین.

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

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