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

نام تاپیک: shortcutkey براي دو تا كاراكتر:مثلا alt+a,e

  1. #1
    کاربر دائمی آواتار mahboube
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    شيراز
    سن
    36
    پست
    596

    shortcutkey براي دو تا كاراكتر:مثلا alt+a,e

    سلام
    چطوري ميشه shortcutkey براي دو تا حرف يا عدد درست كرد؟مثلا alt+a,e .
    يعني alt و a و e سه تاش باهم بايد فشرده شه؟

  2. #2
    کاربر دائمی آواتار M.YasPro
    تاریخ عضویت
    آبان 1386
    محل زندگی
    Kernel
    پست
    1,171

    نقل قول: shortcutkey براي دو تا كاراكتر:مثلا alt+a,e

    سلام
    برای اینکار از توابع api استفاده می کنند . GetKeyboardState
    اما از این کد هم میشه استفاده کرد :
            bool flag = false;
    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
    if (e.Alt && e.KeyCode == Keys.A)
    flag = true;
    }

    private void Form1_KeyUp(object sender, KeyEventArgs e)
    {
    if (e.KeyCode == Keys.B && flag)
    {
    MessageBox.Show("");
    flag = false;
    }
    }

    موفق باشید .

  3. #3
    کاربر دائمی آواتار mahboube
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    شيراز
    سن
    36
    پست
    596

    نقل قول: shortcutkey براي دو تا كاراكتر:مثلا alt+a,e

    فقط يك سوال ديگه.من ميخوام براي مثلا alt+a يكاري انجام بده(مثلا يك منو رو باز كنه).و بعد ازاون حرف بعديو كه زد يكاره ديگه انجام بده؟؟
    فك كنم باتابع api نشه!!ميشه؟
    بعد چون منو و زير منو زياد دارم اين flag هم نمي دونم ميشه يا نه!

  4. #4
    کاربر دائمی آواتار mahboube
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    شيراز
    سن
    36
    پست
    596

    نقل قول: shortcutkey براي دو تا كاراكتر:مثلا alt+a,e

    كنترل منو خودش به صورتي هستش كه اگر alt+حرف اول مثلا اولي آيتم منو فشرده بشه اون منو رو باز ميكنه و حالا اگر حرف اول هركدوم از زير منو هاش فشرده شه اون زيرمنو رو انتخاب مب كنه.مثلا براي منوي file كه گزينه Open توش هست.alt+f منوي فايل رو باز ميكنه و o زيرمنويopen رو اجرا ميكنه.من ميخام اينو به صورت عددي پياده كنم.يعني alt+1 منويfile رو باز كنه و 1 بعدي گزينه open رو.
    مشكلي كه وجو داره اينه كه به زسر منو ها ميشه shortcutkey عددي داد ولي به header ها نميشه.برا همين بايد توي key down خود منو نوشته شه.
    كه اونجام نميتونم بگم مثلا برا alt+1 منو رو باز كن منتظر گرفتن كاراكتر بعدي شو.
    ممنون ميشم اگر كسي ايده اي داره بهم بگه.

  5. #5
    کاربر دائمی آواتار mahboube
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    شيراز
    سن
    36
    پست
    596

    نقل قول: shortcutkey براي دو تا كاراكتر:مثلا alt+a,e

    من كه نتونستم اينو درست كنم.حالا دوتا سوال:
    1-آيا ميشه وقتي كاربر يك كليد رو زد گرفتش و يه كد ديگه بهش داد و برا ي keydown فرستاد؟؟

    2-آ يا كامپوننتي مثل جانوس يا dev وجود داره كه منو هاي باقابليت بهتر داشته باشه؟

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

    نقل قول: shortcutkey براي دو تا كاراكتر:مثلا alt+a,e

    سلام
    بدون api هم میشه

    ابتدا می ری خاصیت keypreview فرم رو true می کنی

    بعد تو رویداد Keypressیا keydown این کد رو می نویسی


    if(e.control)
    switch(e.keycode)
    {
    case keys.R:
    CallMenu
    break;

    case keys.P
    call Menu P;
    break;
    }



    شَما به جای Call Menu هر اتفاقی که قراره با فشردن این دکمه ها بیفته بنویس

  7. #7
    کاربر دائمی آواتار mahboube
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    شيراز
    سن
    36
    پست
    596

    نقل قول: shortcutkey براي دو تا كاراكتر:مثلا alt+a,e

    نقل قول نوشته شده توسط chasbonakam مشاهده تاپیک
    سلام
    بدون api هم میشه

    ابتدا می ری خاصیت keypreview فرم رو true می کنی

    بعد تو رویداد Keypressیا keydown این کد رو می نویسی


    if(e.control)
    switch(e.keycode)
    {
    case keys.R:
    CallMenu
    break;

    case keys.P
    call Menu P;
    break;
    }



    شَما به جای Call Menu هر اتفاقی که قراره با فشردن این دکمه ها بیفته بنویس
    بعد اين دوتا كليدش كجاش؟!!

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

    نقل قول: shortcutkey براي دو تا كاراكتر:مثلا alt+a,e

    Control +p

    یا Control+R

  9. #9
    کاربر تازه وارد
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    .Net Framework
    پست
    84

    نقل قول: shortcutkey براي دو تا كاراكتر:مثلا alt+a,e

    نقل قول نوشته شده توسط M.YasPro مشاهده تاپیک
    سلام
    برای اینکار از توابع api استفاده می کنند . GetKeyboardState
    اما از این کد هم میشه استفاده کرد :
     bool flag = false;
    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
    if (e.Alt && e.KeyCode == Keys.A)
    flag = true;
    }

    private void Form1_KeyUp(object sender, KeyEventArgs e)
    {
    if (e.KeyCode == Keys.B && flag)
    {
    MessageBox.Show("");
    flag = false;
    }
    }

    موفق باشید .
    این کد یه مشکل داره. وقتی طرف دکمه های Alt و a رو یه بار یزنه و ول کنه (بدون اینکه e) رو فشار بده. بازم flag برابر true میشه و بعد از اون هرموقع دکمه ی E به تنهایی زده شه اتفاق مورد نظر رخ میده ) حتی اگه alt و a فشرده نشده باشه! تو متد keyUp همیشه باید در آخر متد flag=false; نوشته شه!

  10. #10
    کاربر دائمی آواتار M.YasPro
    تاریخ عضویت
    آبان 1386
    محل زندگی
    Kernel
    پست
    1,171

    نقل قول: shortcutkey براي دو تا كاراكتر:مثلا alt+a,e

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

  11. #11
    کاربر دائمی آواتار mahboube
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    شيراز
    سن
    36
    پست
    596

    نقل قول: shortcutkey براي دو تا كاراكتر:مثلا alt+a,e

    ممنون از جفت دوستان.ولي من اينو دارم براي منو ها مينويسم و منو ها يك خاصيت جالب دارن و اين اينه كه وقتي يك منو باز ميشه ديگه هيچ رويداد keydown ازفرم يا خود منو و... اجرا نميشه.(چون همه منو ها خودشون shortcutkey )دارن و يه جورايي ايونت keydown تو زماني كه بازن برا خودشونه!!!!
    براي همين من نتونستم كاري كه ميخوام رو انجام بدم.ولي راهنماي هاتون كمك كرد.ممنون

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

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