تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 11

نام تاپيک: چسباندن فرم به گوشه های اسکرین #C

  1. #1
    داره خودمونی میشه BILLY_Mgs's Avatar
    تاريخ عضويت
    Jul 2008
    محل سكونت
    In Visual Studio 2010...
    پست ها
    42

    12 چسباندن فرم به گوشه های اسکرین #C

    سلام.
    اگه دیده باشید بعضی از برنامه ها وقتی داریم اونا رو Move میکنیم ، وقتی به گوشه های Screen نزدیک میشند یک هو میچسبن به گوشه ها . (مثل Jet Audio)
    اگر هم تاحالا چنین برنامه ای ندیدید یه کم توضیح میدم تا دقیقا منظورم رو برسونم :
    وقتی Move میکنیم و زمانی که سمت چپ فرم به نقطه ی X=0 توی Screen نزدیک میشه یک دفه فرم به نقطه x=0 می چسبه ( کشانده میشه!)
    و برای اینکه از اونجا بکنیم باید مقدار بیشتری move به سمت مخالف بکنیم .

    میخواستم ببینم چه طوری میتونم تو برنامم چنین خاصیتی رو اضافه کنم؟!؟?؟?

    مرسی

  2. #2
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    شما همینطوری میتوانید این کارها را با خصایص عادی Form انجام دهید و رویداد LocationChanged را کدنویسی کنید.

    ولی یک مطلب وجود دارد.
    در ویندوز یک مفهومی به نام AppBar وجود دارد که خیلی شبیه Dock در دات نت است ولی روی صفحه نمایش Desktop اتفاق می افتد.

    من یک پنج هزارسالی میشود که Jet Audio و Winap و... و... و سایر برنامه های مشابه را نصب نکردم و ندیدم و نمیدانم برنامه شما شامل این مفهوم میشود یا خیر.


    برنامه ای که AppBar شود، (مثل Dock در دات نت) صفحه Desktop را کوچک میکند و کامل هم به ان سمت میچسبد.
    یعنی اگر در این حالت برنامه های دیگر، (MyComputer یا هر برنامه دیگری) را Max کنید، در محدوده باقی مانده Max میشود و روی فرم AppBar را نخواهد گرفت.

    =====

    1- پس اگر برنامه شما AppBar نیست میتوانید از رویداد رویداد LocationChanged استفاده کنید.

    2- در غیر این صورت باید از API زیر استفاده کنید:
    SHAppBarMessage
    برای توضیحات بیشتر به MSDN مراجعه کنید:
    msdn.microsoft.com/en-us/library/bb776821(VS.85).aspx

    موفق باشید.

  3. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


  4. #3
    داره خودمونی میشه BILLY_Mgs's Avatar
    تاريخ عضويت
    Jul 2008
    محل سكونت
    In Visual Studio 2010...
    پست ها
    42

    پيش فرض

    نه مانند AppBar نیست
    یک فرم سادست که وقتی کاربر اونو move میکنه و location اش تغییر میکنه ، زمانی که با location.X < 20 میرسه فرم تغییر location میده به Location.X = 0
    من این کدو رو نوشتم ولی کمی اشکال داره :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    ولی مشکل اینجاست ! اگه ما form را به طرف مخالف ه X= 0 یعنی به سمت راست بکشیم ، تا زمانی که X < 20 هست فرم با هر 1 مرتبه تغییر X برمیگرده به 0 یعنی هی تکون میخوره و ثابت نیست تا زمانی که از 20 نگذره .
    من یه فکری به سرم زد که اگه بشه حساب کرد زمانی که MouseDown میشه روی فرم و فرم میخواد move بشه تا زمانی که نشانگر mouse تا 20X از جایی که mousedown شده تغییر نکرده فرم تکون نخوره!
    مرسی اگه راهنمایی کنین همین کارو انجام بدم.

  5. #4
    داره خودمونی میشه BILLY_Mgs's Avatar
    تاريخ عضويت
    Jul 2008
    محل سكونت
    In Visual Studio 2010...
    پست ها
    42

    پيش فرض

    دوستان این سوال من بدون جواب موندش!
    چطور میشه زمانی که روی فرم عمل mouse down میشه حساب کرد چه مقدار x , y موس از جایی که mouse down کرده تغییر کرده ؟

  6. #5
    پروفشنال sari-1369's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    ساري
    پست ها
    766

    پيش فرض

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

  7. این کاربر از sari-1369 بخاطر این مطلب مفید تشکر کرده است


  8. #6
    پروفشنال sari-1369's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    ساري
    پست ها
    766

    پيش فرض

    با یه نرم افزار تبدیلش کردم ، جوابش شد این :
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  9. این کاربر از sari-1369 بخاطر این مطلب مفید تشکر کرده است


  10. #7
    داره خودمونی میشه BILLY_Mgs's Avatar
    تاريخ عضويت
    Jul 2008
    محل سكونت
    In Visual Studio 2010...
    پست ها
    42

    پيش فرض

    دوست عزیز خیلی ممنون . مشکل چسبیدن به گوشه های اسکرین تا حدودی حل شد دستتون درد
    ولی اگه امکانش هست خودتان 1 بار این را تست کنین تا مشکلاتشو ببینید .
    مشکلش اینه که زمانی که توی کمتر از 20 هست فرم دائم تکون میخوره .
    باید قسمتی به کد اضافه کنیم که تا زمانی که زیره 20 هست ، تا زمانی که موس بیشتر از 20 تا تغییر مکان نداده تکون نخوره.
    بازم سوالمو که تو پست 4 بود تکرار میکنم :
    چطور میشه زمانی که روی فرم عمل mouse down میشه حساب کرد چه مقدار x , y موس از جایی که mouse down کرده تغییر کرده ؟
    مرسی

  11. #8
    پروفشنال sari-1369's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    ساري
    پست ها
    766

    پيش فرض

    بدست آوردن و ذخیره کردن مختصات مکانی که در آن عمل mouse down رخ داده است :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    بدست آوردن اختلاف مکان قبلی و فعلی :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    من نمیدونم اینو برای چی میخوای ، ولی اگر برای حرکت دادن فرم میخوای کدش اینه :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


    ----------------------------------------------------------------------------


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


  12. این کاربر از sari-1369 بخاطر این مطلب مفید تشکر کرده است


  13. #9
    پروفشنال sari-1369's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    ساري
    پست ها
    766

    پيش فرض

    مشکلش اینه که زمانی که توی کمتر از 20 هست فرم دائم تکون میخوره .

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

  14. این کاربر از sari-1369 بخاطر این مطلب مفید تشکر کرده است


  15. #10
    داره خودمونی میشه BILLY_Mgs's Avatar
    تاريخ عضويت
    Jul 2008
    محل سكونت
    In Visual Studio 2010...
    پست ها
    42

    پيش فرض

    من نمیدونم اینو برای چی میخوای ، ولی اگر برای حرکت دادن فرم میخوای


    مثلا زمانی که فرم به سمت چپ اسکرین چسبیده و ما می خوایم اونو به سمت راست بکشیم برای اینکه تا زمانی که تا >20 هست فرم دائم تکون نخوره move شدن رو غیر فعال کنیم و زمانی که ما از 20 درجه بیشتر موس رو به سمت راست بردیم اون موقع move شدن فعال بشه .
    با این کار از تکون خوردن دائم فرم جلوگیری کنیم.

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

برچسب های این موضوع

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •