דילוג לתוכן

מעבר באמצעות אנטר בC#

הועבר תכנות
5 4 270 4
  • איך אני מבצע בטופס winform שיהיה ניתן לעבור בטופס בין textbox באמצעות מקש אנטר
    (כמובן אחרי שסדרתי את המעברים לפי ה'טאב')

  • איך אני מבצע בטופס winform שיהיה ניתן לעבור בטופס בין textbox באמצעות מקש אנטר
    (כמובן אחרי שסדרתי את המעברים לפי ה'טאב')

    @mekev יש דרכים לעשות זאת, אבל לא מומלץ, כי ממשק אמור לפעול על פי המקובל בשוק התוכנות, ואנטר פירושו 'אישור' או 'בצע' וכיוצא בזה. שיעברו על ידי מקש הטאב, מה רע?

  • הנה תשובה מסטאק, שקולטת לחיצה על מקש אנטר ושולחת במקומו טאב:

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {            
        if (keyData == (Keys.Enter))
        {
            SendKeys.Send("{TAB}");
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }
    

    הערה: אם תרצה בכל זאת להשתמש באנטר במקום אחר בטופס, תצטרך להצמיד את הקוד רק לתיבות הטקסט, כלומר להאזין לאירוע הלחיצה-על-מקש רק בפקדי תיבות הטקסט, ולא באופן כללי בכל הטופס.

  • @mekev יש דרכים לעשות זאת, אבל לא מומלץ, כי ממשק אמור לפעול על פי המקובל בשוק התוכנות, ואנטר פירושו 'אישור' או 'בצע' וכיוצא בזה. שיעברו על ידי מקש הטאב, מה רע?

    @רחמים
    באקסס לדוגמא זה ממש מקובל.
    ומאד מאד נח! בעיקר אם אתה עובד עם נתונים מרובים.
    אחד הדברים שהכי התקשתי במעבר לwinform ולווב.

    האנטר בשביל אישור במסך עם נתונים, יכול בקלות להיות קונטרול + אנטר.
    בדיוק כמו בגימייל...

  • איך אני מבצע בטופס winform שיהיה ניתן לעבור בטופס בין textbox באמצעות מקש אנטר
    (כמובן אחרי שסדרתי את המעברים לפי ה'טאב')

    @mekev
    בדומה למה שכתב @OdedDvir

    protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
    {            
        if ((keyData == Keys.Enter) || (keyData == Keys.Return))
        {
            keyData = Keys.Tab;
        }
        return base.ProcessCmdKey(ref msg, keyData);
    }
  • dovidD dovid העביר נושא זה מ-תכנות ב-
בא תתחבר לדף היומי!