PDA

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



A.Farzin
چهارشنبه 29 خرداد 1387, 20:20 عصر
با سلام

برای اینکه بتوانم کلید فشرده شده روی هر کنترل را در برنامه٬ مدیریت کنم از کدنویسی روی رویداد Keydown و یا Keypress آن کنترل کمک میگیرم. به این شکل اگر روی فرمم 15 کنترل قرار گرفته باشد٬ در 15 رویداد باید این کد را بنویسم.
آیا ممکن است بدون کدنویسی برای یکایک کنترلهای روی فرم این کار را انجام داد به شکلی من کد را در یک رویداد بنویسم ولیْ اگر کاربر روی هر کدام از کنترلها کلید مثلاْ Esc را زد فرم بسته یا اگر کلید F5 را زد فرم Refresh شود و ....
ممنون

reza_optical
چهارشنبه 29 خرداد 1387, 20:29 عصر
سلام
خوب عزیز خاصیت keypreview فرم رو true کن بعد توی keydown فرم هر چی بنوسی هر جا focus باشه فرقی نمیکنه keydown فرم اجرا میشه

مهران رسا
پنج شنبه 30 خرداد 1387, 09:36 صبح
چطوری رویداد KeyDown رو خودمون بنویسیم ؟!!

منظورم اینه که اصلاً از رویداد KeyDown کنترل ها برای تشخیص فشرده شدن کلید های روی کیبورد استفاده نکنیم و خودمون برای نوشتن این Event اقدام کنیم .

reza_optical
پنج شنبه 30 خرداد 1387, 10:08 صبح
سلام
اینو یه نگا کن فکر کنم مشکلتو حل میکنه

مهران رسا
پنج شنبه 30 خرداد 1387, 12:17 عصر
سلام
اینو یه نگا کن فکر کنم مشکلتو حل میکنه

سلام .

مثل اینکه منظور من رو متوجه نشدید ...

ببینید من می خوام خودم رویداد KeyDown رو بنویسم . یعنی نمی خوام از خاصیت پیش فرض KeyDown مربوط به کنترل ها استفاده کنم :



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



فایل ضمیمه شما باز هم اومده از KeyDown پیش فرض مربوط به فرم استفاده کرده ...

آقا اصلاً توی VB میشه Event نوشت ؟!!

vbhamed
پنج شنبه 30 خرداد 1387, 13:09 عصر
چطوری رویداد KeyDown رو خودمون بنویسیم ؟!!

منظورم اینه که اصلاً از رویداد KeyDown کنترل ها برای تشخیص فشرده شدن کلید های روی کیبورد استفاده نکنیم و خودمون برای نوشتن این Event اقدام کنیم .



سلام
مي تونيد از توابع Api كه كليد دسترسي سريع تعريف مي كنند استفاده كنيد
ولي اين كار چه فايده اي داره كه خودتون Key_Down بنويسيد ؟

reza_optical
پنج شنبه 30 خرداد 1387, 13:26 عصر
با سلام
من کد را در یک رویداد بنویسم ولیْ اگر کاربر روی هر کدام از کنترلها کلید مثلاْ Esc را زد فرم بسته یا اگر کلید F5 را زد فرم Refresh شود و ....
ممنون
همونطوری که دوستمون گفت از Api میتونی استفاده کنی ولی چه لزومی داره؟!!!
اون خواسته ای شما کردید
اون فایل که ضمیمه کردم به درد شما میخوره با دقت نگاه کن
اگر شما در key_down فرم بنویسی که هر وقت کلید F5 زده شد refresh بشه دیگه نیاز نیست که واسه همه object ها اینو تعریف کنی ما که تا اینجا از حرفهای شما سر در آوردیم
سر بلند سر فراز باشید

__siavash__
پنج شنبه 30 خرداد 1387, 14:23 عصر
با سلام

برای اینکه بتوانم کلید فشرده شده روی هر کنترل را در برنامه٬ مدیریت کنم از کدنویسی روی رویداد Keydown و یا Keypress آن کنترل کمک میگیرم. به این شکل اگر روی فرمم 15 کنترل قرار گرفته باشد٬ در 15 رویداد باید این کد را بنویسم.
آیا ممکن است بدون کدنویسی برای یکایک کنترلهای روی فرم این کار را انجام داد به شکلی من کد را در یک رویداد بنویسم ولیْ اگر کاربر روی هر کدام از کنترلها کلید مثلاْ Esc را زد فرم بسته یا اگر کلید F5 را زد فرم Refresh شود و ....
ممنون

فکر کنم منظور شما همچین بحثی (http://barnamenevis.org/forum/showthread.php?t=82859&highlight=derived+control) در بخش VB.Net باشه
توی VB.Net به راحتی انجام میشه اما توی Vb6.0 فکر نمیکنم بشه !!!

reza_optical
پنج شنبه 30 خرداد 1387, 14:45 عصر
دقیقا
در vb.net شما میتونی تابع خودتو overwrite کنی ولی در vb... هم میشه از یه کلاس استفاده کنی البته این واسه خود من سوال بود پرسیدم ولی نشه بهتره :قهقهه:
میتونی به این پست هم یه نگا کنی زحمت کشیدن جواب دادن نام تاپیک

Append کردن تابع خودم به Event های یک object

مهران رسا
پنج شنبه 30 خرداد 1387, 16:39 عصر
در کل من منظورم رو از این واضح تر نمی تونم بگم ...

جوابم رو از جناب vbhamed گرفتم .

با تشکر از همگی