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

نام تاپیک: رویدادهای صفحه کلید

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

    رویدادهای صفحه کلید

    من روش استفاده از رویدادهای صفحه کلید را می خواستم بدونم. یعنی وقتی من شماره 1 را در صفحه کلید بزنم برنامه فلان کار را بکنه یا وقته کلید "ع" را زدم فلان کار را بکنه!
    برای این کار باید از چه دستوری استفاده کنم ؟

  2. #2

    پاسخ

    if(e.KeyCode==Keys.D1)
    MessageBox.Show("You pressed 1 key");


    در مورد حرف ع هم نمی دونم چطوری.
    میشه بجای حرف ع از حرف u استفاده کرد

  3. #3
    کاربر دائمی آواتار alireza643
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    روی زمین
    پست
    368

    if (e.KeyChar == 'ع')
    {
    //your code
    }

    موفق باشید.

  4. #4
    کاربر دائمی
    تاریخ عضویت
    تیر 1386
    محل زندگی
    شیراز
    پست
    373
    مرسی از راهنمایی...
    ولی یه سوال :
    اگر بخوام این کار را برای یک ماشین حساب انجام بدم باید برای هر باتون این کد را بنویسم یا اینکه راهی هست؟ شما حساب کنید برنامه ای دارید که خیلی از رویداد صفحه کلید دارید. آن وقت هم این روشی که گفتید مناسب است یا اینکه روش بهتری هست؟
    مثل خاصیت اینتر در باتون ها که می توان آن را تنظیم کرد. حال چنین خاصیتی برای دیگه دکمه های صفحه کلید در سی شارپ وجود دارد؟

  5. #5
    از دستور Switch استفاده کنید

    switch(e.KeyChar )
    {
    case 'ع' :
    MessageBox.Show("ع");
    break;

    case '1':
    MessageBox.Show("1");
    break;
    }

  6. #6
    کاربر دائمی آواتار alireza643
    تاریخ عضویت
    شهریور 1384
    محل زندگی
    روی زمین
    پست
    368
    من دقیق نمیدونم شما چه کاری میخواهید انجام بدید و با توجه به شرایط مختلف تصمیمات مختلفی میشه گرفت
    مثلا اگر کار شما اینه که با توجه به هر کلیدی که فشار داده میشه یه کار خاصی انجام بدید راهش اینه که آقای رضوی فرمودن.
    یا اگر شما میخواید با زدن هر کلید مقدار اون در صورتی که جزء کاراکتر های قابل قبول بود مقدارش به کاربر نشون داده بشه و مثلا شما 20 تا کاراکتر داشته باشید خوب به تبع نوشتن یه switch خیلی روش طولانی هست و من از روش زیر استفاده میکنم:
    فرض کن میخوام کاراکتر به کاربر نشون داده بشه اگر فقط کاراکتر این ها بود (ا ، ب ، ج ، د ، ی ، ث ، 1 ، 2 ، 5)

    private bool IsInList(char ch)
    {
    char[] lst = { 'ا', 'ب', 'ج', 'د', 'ی', 'ث','1','2','5'};
    for (int i = 0; i < lst.Length ; i++)
    if (ch == lst[i]) return true;
    return false;
    }

    private void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
    if (IsInList(e.KeyChar))
    MessageBox.Show("Your char is: "+ e.KeyChar);
    }

    در کل تصمیمات نصبت به شرایط فرق میکنه شما اگر بگی دقیقا چه کاری مد نظرتون هست بهتر میشه راهنمایی کرد.
    موفق باشید.

  7. #7
    کاربر دائمی آواتار PC2st
    تاریخ عضویت
    آذر 1385
    محل زندگی
    کرمانشاه
    سن
    38
    پست
    1,491
    نقل قول نوشته شده توسط man_iran
    اگر بخوام این کار را برای یک ماشین حساب انجام بدم باید برای هر باتون این کد را بنویسم یا اینکه راهی هست؟ شما حساب کنید برنامه ای دارید که خیلی از رویداد صفحه کلید دارید. آن وقت هم این روشی که گفتید مناسب است یا اینکه روش بهتری هست؟
    برای رویداد Click تمام دکمه ها، میتشه فقط یک متد مشخص کرد... سپس اگر پارامتر sender رو به نوع Button تبدیل کنید، به دکمه ای که روی آن کلیک شده دسترسی دارید.

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

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