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

نام تاپیک: کنترل کلید Esc و Alt+F4 درتمام قسمتهای برنامه

  1. #1

    کنترل کلید Esc و Alt+F4 درتمام قسمتهای برنامه

    سلام دوستان. میخوام داخل برنامه ام درهرحالتی و داخل هر فرمی به محض اینکه کاربر کلید Esc رو زد تابع مربوط به خروج من اجرا بشه. چجوری انجام بدم؟
    و اگه برای Alt+f4 هم همین کنترل بشه ساخت خیلی عالی میشه(البت در این مورد تو همین فروم دیدم ولی نمیدونم کجا بود. پیداش میکنم)
    ممنون از کمکتون

  2. #2
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631
    خب از رویداد keydown استفاده کنید . اما این کار منطقی نیست مثلا کاربر توی یک فرم است حالا esc می زنه خوب این یعنی از این فرم بیا بیرون نه اینکه از کل برنامه . اما alt+f4 از رویدادهای closing و کنسل کردن خروج می تونی استفاده کنی حالا تصمیم بگیر هنوز می خواهی کامل برنامه فرم خروج رو نشون بده با esc یا نه . جوابش رو بده تا کمکت کنیم

  3. #3
    من تو تابع خروجم تمام اینهارو کنترل میکنم
    درضمن از keydown هم استفاده کردم ولی جواب نمیده
    (خیلی جالبه که اولین کلیدی که میزنی تابع عمل میکنه ولی دیگه عمل نمیکنه! )
    ممنون میشم کمک کنی

  4. #4
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631
    ببین alt+f4 فقط برای فرم اصلی بکار می ره اگه بخوای همه همینطور بشه خیلی زایه بازی میشه . اما باید موقع بسته شدن هر فرم تابعت رو صدا بزنی توی form closing اما ناجور می شه من این رو فقط براس فرم پدر اول گذاشتم

  5. #5
    مرسی ازراهنماییت
    اما میشه به من بگی چجوری میتونم کاری کنم که ازهرجا کاربر Esc رو زد تابعی از mainForm من اجرا بشه(مثلا MainExit )
    ممنون

  6. #6
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631
    ببین application.exit کلا از برنامه میاردت بیرون اما می تونی قبلش جلو این کار رو بگیری و کنسلش کنی این کار رو می تونی با نشون دادن یک فرم و آقا می خواهی بیایی بیرون و ... مدیریت کنی

  7. #7
    علی جان عزیز دلم من با چجوری خارج شدن مشکلی ندارم
    مشکل من اینه که
    1. چجوری بفهمم کاربر کلید Exc رو زده (داخل یک برنامه MDI
    2. اگه مرحله 1 رو فهمیدم حالا چک میکنم که همه جا میتونه این کلید رو چک کنه یا نه

  8. #8
    کاربر دائمی آواتار ali_kolahdoozan
    تاریخ عضویت
    بهمن 1384
    محل زندگی
    اون سر دنیا
    پست
    1,631
    خوب ببین alt+f4 سبب میشه برنامه هر جا که هست فرمها رو ببنده بیاد بیرون خوب شما اینجا کد بنویس . من در مورد alt+f4 حرف می زنم نه esc

  9. #9
    ممنون
    آقا درمورد Esc کسی نظری نداره؟!

  10. #10
    کاربر دائمی آواتار shahab_ss
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    bangkok
    سن
    43
    پست
    434
    َALLWAYS KEEP IT SIMPLE, AS SIMPLE AS POSSIBLE...BUT NOT MORE THAN THAT

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
    CloseReason cr_m = e.CloseReason;

    if (cr_m == CloseReason.UserClosing)
    {
    // ask if the ****ing user really wants to close
    // then EXIT

    }
    else
    e.Cancel = true;

    }

  11. #11
    دوست عزیز من
    شهاب جان اگه یکم به سوال دقت میکردی میفهمیدی که سوال من اینی نبود که شما گفتی ;)
    ممنون که وقت گذاشتی ولی دقت کن;)
    نکته: ازاین به بعد کدهاتو داخل تگ code قراربده که قابل خوندن و قشنگترباشه

  12. #12
    کاربر دائمی آواتار shahab_ss
    تاریخ عضویت
    فروردین 1384
    محل زندگی
    bangkok
    سن
    43
    پست
    434
    امیدوارم این مثال بهت کمک کنه.
    توی فرم اصلی همونطور که خودت هم میدونی KeyDown Event یک بار بیشتر اجرا نمیشه.
    (This might be a BUG ) برای همین من یه کلک کوچولو برای به تله انداختن کلید Esc زدم. یه کلید گذاشتم که کارش خروج از برنامس.و CancelButton رو در فرم اصلی ( فقط همین فرم ) برابر با این کلید قرار دادم.
    این مشکل تو فرمهای دیگه وجود نداره.
    نکته : شما برای اینکه مجبور نباشی این کلید بی مصرف رو ببینی میتونی سایز اون رو به 0.0 تغییر بدی
    ( چون اگه Visible = false اونوقت دسترسی به اون رو از دست میدی ).

    اگه راه بهتری پیدا کردی لطفا به من هم بگو.
    از نکاتی هم که بهم گفتی ممنون . با عجله اون تاپیک رو نوشتم برای همین ...

    موفق باشی
    فایل های ضمیمه فایل های ضمیمه

  13. #13
    پس راحشو بهت میگم که هم حال کنی و هم حال کنی
    البته یک اشتباه کوچیک ما کردیم و اون اینکه خصوصیت KeyPreview فرم اصلی رو اگه بربر true بکنیم دیگه همه جا (اکثر جاها) کلیدمونو کنترل میکنه

  14. #14
    یه منو بساز و مخفیش کن و یک shortcut براش تعریف کن و توی رویداد این زیر منو کدی را بنویس که اگه Esc زده شد چه کاری انجام بده

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

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