PDA

View Full Version : key preview



modirmasool
سه شنبه 05 مرداد 1389, 18:19 عصر
دوستان یه سوال دارم:
دو تا دکمه رو فرم بذارین. حالا میخوام وقتی کاربر یکی از کلیدهای جهت نما رو فشار داد یه پیغامی چیزی ظاهر بشه.( نمیخوام از api استفاده بشه.)
من برای این کار key preview رو true کردم و در رویداد Form_KeyDown نوشتم که پیغام بده ولی با دکمه های جهت نما کار نمیکنه.(چون که وقتی اونا زده میشن، فوکس دکمه ها رو عوض می کنن).
ممنون.

kuh_nur
سه شنبه 05 مرداد 1389, 19:30 عصر
از رویداد Form_KeyPress استفاده کن

مهران رسا
سه شنبه 05 مرداد 1389, 19:40 عصر
از رویداد Form_KeyPress استفاده کن
رویداد KeyPress قادر به تشخیص فشرده شدن کلیدهای جهت نما نیست . باید از همون رویداد KeyDown استفاده بشه .

محسن شامحمدی
سه شنبه 05 مرداد 1389, 20:05 عصر
دوست عزیز من تست کردم
با هیچ کدوم از رویدادهای keypress و down و up این کار عملی نیست چون این ها کلیدهای ویژه اند.
ولی من یک ایده دارم
شما می تونی از رویدادهای gotfocus و lostfocus اشیا استفاده کنی..
خوشحال می شم اگه از دستم بربیاد بتونم بازم کمکت کنم

مهران رسا
سه شنبه 05 مرداد 1389, 20:58 عصر
دوست عزیز من تست کردم
با هیچ کدوم از رویدادهای keypress و down و up این کار عملی نیست چون این ها کلیدهای ویژه اند.
ولی من یک ایده دارم
شما می تونی از رویدادهای gotfocus و lostfocus اشیا استفاده کنی..
خوشحال می شم اگه از دستم بربیاد بتونم بازم کمکت کنم


Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
MsgBox KeyCode
End Sub

Private Sub Form_Load()
Me.KeyPreview = True
End Sub

modirmasool
سه شنبه 05 مرداد 1389, 22:26 عصر
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
MsgBox KeyCode
End Sub

Private Sub Form_Load()
Me.KeyPreview = True
End Sub


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

modirmasool
سه شنبه 05 مرداد 1389, 22:32 عصر
دوست عزیز من تست کردم
با هیچ کدوم از رویدادهای keypress و down و up این کار عملی نیست چون این ها کلیدهای ویژه اند.
ولی من یک ایده دارم
شما می تونی از رویدادهای gotfocus و lostfocus اشیا استفاده کنی..
خوشحال می شم اگه از دستم بربیاد بتونم بازم کمکت کنم

آره خوبه ولی همیشه عملی نیست. اگه اشتباه نکنم اون وقت اگه کاربر با ماوس کلیک کنه، دو بار کد اجرا میشه.

مهران رسا
سه شنبه 05 مرداد 1389, 22:49 عصر
چون که کلیدهای جهت نما قبلش درگیر جابجا کردن فوکس هستن.میتونید از یک PictureBox استفاده کنید و سعی کنید همیشه focus رو روی اون نگه دارید .


راستی میشه نحوه ی استفاده از SyntaxHighlighter رو بگین.http://up.iranblog.com/Files1/770e15233035475fafd4.png

[ source="vb" ] Your Source Code [ /source ]

modirmasool
سه شنبه 05 مرداد 1389, 23:19 عصر
میتونید از یک PictureBox استفاده کنید و سعی کنید همیشه focus رو روی اون نگه دارید .

http://up.iranblog.com/Files1/770e15233035475fafd4.png

ممنون .بازم نشد.

modirmasool
سه شنبه 05 مرداد 1389, 23:22 عصر
میتونید از یک PictureBox استفاده کنید و سعی کنید همیشه focus رو روی اون نگه دارید .

http://up.iranblog.com/Files1/770e15233035475fafd4.png

نمونه اش رو گذاشتم لطفا یه نگاهی بندازین.(با بقیه دکمه کار میکنه ولی با جهتنما نه)

مهران رسا
سه شنبه 05 مرداد 1389, 23:37 عصر
دوست عزیز عرض کردم باید از رویداد KeyDown استفاده کنید . ضمناً کدتون رو باید در رویداد کنترل PictureBox بنویسید نه فرم !

modirmasool
چهارشنبه 06 مرداد 1389, 00:00 صبح
دوست عزیز عرض کردم باید از رویداد KeyDown استفاده کنید . ضمناً کدتون رو باید در رویداد کنترل PictureBox بنویسید نه فرم !

ممنون. حالا شد.