PDA

View Full Version : سوال: مشکل بازگرداندن چند کارکتر در رخدادهای فشردن کلید



m.h.movahedi
شنبه 30 خرداد 1394, 15:53 عصر
سلام
من در استفاده از رخدادهای صفحه کلید به مشکلی برخوردم. تصور کنید دارید کارکترهایی که کاربر با فشردن صفحه کلید وارد می کند را می خوانید. این کار ساده است و در رخداد keypress از ویژگی keychar استفاده می شود. حال مشکل موجود این است که با فشردن برخی کلیدها یک کارکتر نتیجه نمی شود به عنوان مثال در زبان فارسی SHIFT+R نتیجه ی "ريال" را برمی گرداند. جالب اینکه این عمل به صورت چهار رخداد که هر کدام یک کارکتر را بر می گردانند در نظر گرفته می شود. سوال من این است که چگونه می توانم در یک رخداد با فشرده شدن این کلید ها کل رشته را دریافت کنم؟

RmeXXXXXXXXX
شنبه 30 خرداد 1394, 20:33 عصر
رخداد KeyDown یا KeyUp رو امتحان کنید.

m.h.movahedi
یک شنبه 31 خرداد 1394, 07:56 صبح
سلام
در رخداد keypress ما keychar رو داریم که قابلیت برگرداندن کارکتر فارسی رو هم داره ولی سایر event ها این ویژگی رو ندارند.

alireza264
یک شنبه 31 خرداد 1394, 09:00 صبح
سوال من این است که چگونه می توانم در یک رخداد با فشرده شدن این کلید ها کل رشته را دریافت کنم؟
.....
در رخداد keypress ما keychar رو داریم که قابلیت برگرداندن کارکتر فارسی رو هم داره ولی سایر event ها این ویژگی رو ندارند.

سلام کلمه "ریال" یک رشته هستش از نوع string اما شما می خوای که کلش رو با e.KeyChar به صورت یک کاراکتر (Char) برگردونه که بدلیل تفاوت data type و طول عملا امکان نداره
برای این موارد بهتره از PreviewKeyDown به همراه KeyPress استفده کنی چون PreviewKeyDown قبل از KeyPress اجرا میشه و ابتدا چک کنی اگه کلید Shift_R رخ داد KeyPress اجرا نشه