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

نام تاپیک: دریافت کد کلید زده شده در برنامه از تابع

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

    دریافت کد کلید زده شده در برنامه از تابع

    با سلام
    من در رویداد KeyDown فرم برنامه کد زیر را قرار دادم

    if (e.KeyCode == Keys.F12 ())
    {
    }

    به دلیل انکه از این تکه بسیار در برنامه استفاده می کنم می خوام در زمان شرط از یک تابع برای این کار استفاده کنم


    if (e.KeyCode == Function())

    }
    {

    باید نوع خروجی تابع را از چه نوعی تعریف کنم
    باتشکر

  2. #2
    کاربر دائمی آواتار mamali_programer
    تاریخ عضویت
    آذر 1386
    محل زندگی
    تهران
    پست
    162
    سلام دوست عزیز
    من خودم وقتی می خواهم متود بسازم میام کل قسمت که باید توی متدم باشرو سلکت میکنم بعد دکمه سمت راستو میزنم و در قسمت Refactor گزینه Extratc Method انتخاب میکنم
    خودش به صورت خود کار همه کارهارو میکنه

  3. #3
    فقط Keys.F12 رو در یک function نوشتن چه کمکی میکنه ؟ من منظورتون رو متوجه نمیشم . شاید متظورتون اینه :

    if (e.KeyCode == Keys.F12 ())
    {
    Function();
    }

  4. #4
    نقل قول نوشته شده توسط rezaiy.ali مشاهده تاپیک
    با سلام
    من در رویداد KeyDown فرم برنامه کد زیر را قرار دادم

    if (e.KeyCode == Keys.F12 ())
    {
    }

    به دلیل انکه از این تکه بسیار در برنامه استفاده می کنم می خوام در زمان شرط از یک تابع برای این کار استفاده کنم


    if (e.KeyCode == Function())

    }
    {

    باید نوع خروجی تابع را از چه نوعی تعریف کنم
    باتشکر
    نقل قول نوشته شده توسط mamali_programer مشاهده تاپیک
    سلام دوست عزیز
    من خودم وقتی می خواهم متود بسازم میام کل قسمت که باید توی متدم باشرو سلکت میکنم بعد دکمه سمت راستو میزنم و در قسمت Refactor گزینه Extratc Method انتخاب میکنم
    خودش به صورت خود کار همه کارهارو میکنه
    چه ربطی داشت؟

    نقل قول نوشته شده توسط hassan razavi مشاهده تاپیک
    فقط Keys.F12 رو در یک function نوشتن چه کمکی میکنه ؟ من منظورتون رو متوجه نمیشم . شاید متظورتون اینه :

    if (e.KeyCode == Keys.F12 ())
    {
    Function();
    }

    با این که درست منظورشون را نرسوندند ولی فکر کنم یه چنین چیزی میخوان




    if (IsValidKey(e.KeyCode))
    {
    //TODO ...
    }
    --------------------------------------------------------------
    Boolean IsValidKey(Keys key)
    {
    return key == Keys.F12;
    }




    که در این صورت پیشنهاد می کنم از همون روش (خودشون) استفاده کنند. مگر اینکه نیاز به تابع IsValidKey در جاهای دیگه برنامه داشته باشند که در این صورت بهتره از کد زیر استفاده بشه



    Boolean IsEqualKeys(Keys firstKey, Keys secondKey)
    {

    return firstKey == secondKey;
    }



    ابنجوری وابستگی به F12 هم از بین میره و مثلا برای کار شما می تونین به صورت زیر استفاده کنید



    if (IsEqualKeys(e.KeyCode, Keys.F12))
    {
    //TODO ...
    }
    }


    مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
    مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084


    وب سایت : http://www.mkiani.ir
    پست الکترونیک : mkiani3000@gmail.com

    موفق و پیروز باشید.
    مهدی کیانی


  5. #5
    من در رویداد KeyDown فرم برنامه کد زیر را قرار دادم
    اگه منظورتان رویداد Form1_KeyDown است ، خوب این چه مشکلی از شما را حل می کنه ؟ و چرا اصلا رویداد Form1_KeyDown ؟
    فرض می کنیم شما در رویداد ذیل اونو می خوای فراخوانی کنی و در فرم تان هم چنین
     
    نوشتی :
    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
    if (e.KeyValue == (char)Keys.A)
    MessageBox.Show("Hello");
    }

    و در رویداد مثلا button1 اونو فراخوانی کردی :
     
    private void button1_Click(object sender, EventArgs e)
    {
    KeyEventArgs e1=new KeyEventArgs(Keys.F12);
    Form1_KeyDown(sender, e1);
    }

    به نظرم یک کار بیهوده است ، البته اگه منظورتان رویداد keyDown فرم تان می باشد ؟!

  6. #6
    کاربر دائمی آواتار mahdi_farhani
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    فولادشهر - اصفهان
    سن
    36
    پست
    1,227
    ماشالا اینجا هرکی یه برداشتی کرده ، این مشکل هم از سازنده تاپیک آب میخوره ..
    --------------------------------------------------------------------------------------------------------
    اول جواب سوالی که پرسیدی رو میدم .
            private Keys test()
    {
    return Keys.F12;
    }

    اگر از Mdi فرم ها استفاده میکنی ، کافی فقط خصویت Keypreview رو True کنی تا در تمام فرمهات بتوی از این کد استفاده کنی ، فقط کافی تو رویداد frmMain_onkeydown منظورم از frmMain همون فرم Parrent هست.
    اگر هم از فرم معمولی استفاده میکینی بازهم به همین شکله ولی فقط تو فرم خودت تاثیر داره
    البته این برداشت من از مشکل شما بوده ، با این همه جواب فکر نکنم دیگه مشکلی داشته باشی.

  7. #7
    نقل قول نوشته شده توسط mahdi_farhani مشاهده تاپیک
    ماشالا اینجا هرکی یه برداشتی کرده ، این مشکل هم از سازنده تاپیک آب میخوره ..
    --------------------------------------------------------------------------------------------------------
    اول جواب سوالی که پرسیدی رو میدم .
            private Keys test()
    {
    return Keys.F12;
    }

    اگر از Mdi فرم ها استفاده میکنی ، کافی فقط خصویت Keypreview رو True کنی تا در تمام فرمهات بتوی از این کد استفاده کنی ، فقط کافی تو رویداد frmMain_onkeydown منظورم از frmMain همون فرم Parrent هست.
    اگر هم از فرم معمولی استفاده میکینی بازهم به همین شکله ولی فقط تو فرم خودت تاثیر داره
    البته این برداشت من از مشکل شما بوده ، با این همه جواب فکر نکنم دیگه مشکلی داشته باشی.
    اینکه خیلی بیخوده
    یک متد که تنها یک لید بر می گردونه .. اونم بدون هیچ عمل دیگه ای
    خوب خود



    Keys.F12;


    را هر جا که خواستن استفاده می کنند دیگه ...
    متد هایی که اینگونه فقط یک مقدار را بر میگردانند، اون مقدار معمولا بایستی در طی اجرای برنامه تغییر کنه .. مثلا درون یک کلاسی یک متغیر صحیح توسط آبجکت های دیگه قابل تغییر است . حالا این منطقی هست که یک متد بنویسیم که مقدار اون متغیر را برگردونه (اگه از property ها استفاده نشده باشه) .. ولی اینکه یک متد به این شکلی که شما نوشتین، فقط یک کلید برگردونه خیلی کار بیهوده و اضافی انجام دادین .. به این دلیل که Keys همه جا قابل استفاده می باشد. در نتیجه Keys.F12 هم همینطور

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

    مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
    مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084


    وب سایت : http://www.mkiani.ir
    پست الکترونیک : mkiani3000@gmail.com

    موفق و پیروز باشید.
    مهدی کیانی


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

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