PDA

View Full Version : شناختن دكمه f2 در هر جايي از فرم



mojtabadj
سه شنبه 14 مهر 1388, 09:59 صبح
سلام به دوستان

من يك فرم طراحي كردم كه باكس هاي زيادي داره .براي استفاده از دكمه f2 مشكلي ندارم و

ولي مشكل زماني هست من ميخوام در هر باكسي كه هستم زماني f2 رو ميزنم ماژول ذخيره

فراخواني بشه! از طرف ديگه نميخوام تو KeyDown هر باكسي كليد رو چك كنم !

لطفا من رو راهنمايي كنيد!

با تشكر

Mani_rf
سه شنبه 14 مهر 1388, 10:30 صبح
سلام دوست عزیز. برای انجام این کار 2 راه به ذهن من رسید.
اولی : ساختن یک منو و دادن ShortCut به آن. در این حالت شما نیازی به تنظیم هیچ رویدادی از فرم و یا باکس ها ندارید و در هر زمان که در آن فرم F2 زده شود رویداد Click آن منو فراخوانی می شود.

دومی : خاصیت KeyPerviwe فرم را True کنی و در رویداد KeyDown فرم کد های مربوط به کنترل کلید فشرده شده و Save کردن را بنویسی.

که البته روش اول بهتر ، سریع تر و منطقی تر است.
موفق باشی

milad.biroonvand
سه شنبه 14 مهر 1388, 10:35 صبح
ببین این کد بدرت نمی خوره



Public Class Form1
Inherits System.Windows.Forms.Form

Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
Select Case keyData
Case Keys.Control Or Keys.Alt Or Keys.Shift Or Keys.G
GroupBox1.Visible = True
End Select
End Function

End Class

arman_Delta2002
سه شنبه 14 مهر 1388, 10:39 صبح
سلام یک منو تو فرم ایجاد کنید و مخفیش کنید و کلید میانبر اون رو F2 بزارید و کد فراخانی ماژول رو هم توش بریزد فکر کنم کارتون راه بیفته:متفکر:

sari-1369
سه شنبه 14 مهر 1388, 10:39 صبح
ایتدا خاصیت KeyPreview فرمت رو برابر True قرار بده .

سپس تو رویداد KeyUp فرمت اینو بنویس :



If e.KeyCode = Keys.F2 Then

End If

milad.biroonvand
سه شنبه 14 مهر 1388, 10:42 صبح
یعنی می تونی یه تابع هم درست کنی که در تمام textbox ها بنویسیش و فراخوانیش کنی بعد بیاد و دکمه ها ی فشرده شده را چک کنه ، اگه مثلا برابر اون دکمه بود ،یک مقدار را فراخوانی کنه .

Mani_rf
سه شنبه 14 مهر 1388, 11:17 صبح
دوستان دست همگی درد نکند که برای راهنمایی دوستمون همه تلاش خودتون را به کار می برید . اما خوب مگر من چی گفتم! شما هم که همه همون دو موردی که من گفتم ر اتکرار کردین.:اشتباه:

mostafa_bahar
سه شنبه 14 مهر 1388, 11:20 صبح
خاصیت keyperewive فرم فعال کن بهد تو keydown فرم کد بنویس هر موقع دکمه ای بخوره داخل آن می ره
ساختن منو جالب نیست بر خلاف نظر دوستمون چون اگر فرم بچه استفاده کنی در فرم مادر منو رو از دست میدی و منوی فرم بچه فعال می شه

sari-1369
سه شنبه 14 مهر 1388, 11:49 صبح
دوستان دست همگی درد نکند که برای راهنمایی دوستمون همه تلاش خودتون را به کار می برید . اما خوب مگر من چی گفتم! شما هم که همه همون دو موردی که من گفتم ر اتکرار کردین.:اشتباه:

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

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

Mani_rf
سه شنبه 14 مهر 1388, 12:01 عصر
خاصیت keyperewive فرم فعال کن بهد تو keydown فرم کد بنویس هر موقع دکمه ای بخوره داخل آن می ره
ساختن منو جالب نیست بر خلاف نظر دوستمون چون اگر فرم بچه استفاده کنی در فرم مادر منو رو از دست میدی و منوی فرم بچه فعال می شه


:متفکر: آخه کی تو فرم والد یا Parrent یا به قول شما مادر ورودی می گیره و ذخیره می کنه.
مورد دوم اینکه اگر شما KeyPerview فرم والد را True کنی و در خاصیت KeyDown و یا هر خاصیت مشابه دیگری کدی بنویسی و بعد از اون فرم فرزندی را باز کنی و کلیدی را فشار دهی خاصیت KeyDown و یا خاصیتی که در ان کد نوشتی فراخوانی می شود؟

دوست عزیز KeyPerview فقط به همان فرمی ارتباط دارد که در آن هستید و خاصیتش را True قرار داده اید. نه فرم های فرزند.

mojtabadj
سه شنبه 14 مهر 1388, 13:51 عصر
با تشكر از تمام دوستان عزيز با KeyPerview كارم راه افتاد