PDA

View Full Version : غیر فعال کردن رویداد keydown یک textbox در زمان اجرا



yekta64
سه شنبه 30 شهریور 1389, 16:46 عصر
سلام دوستان
من در فرمم تعدادی تکس باکس دادم که در رویداد keydown نوشتم که یه مسیج چاپ بشه حالا اگه بخوام در رویداد کی دان این تکس باکس کد چاپ پیغام وجود داشته باشه ولی عمل نکنه یعنی با در زدن یه دمه مثلا اینتر در تک باکس پیغام چاپ نشه باید چکار کنم؟؟؟
لازم به ذکر می خوام کد در رویداد نوشته شده باشه ولی عمل نکنه به عبارت بهتر رویداد keydown در زمان اجرا غیر فعال بشه
مرسی

modirmasool
سه شنبه 30 شهریور 1389, 17:09 عصر
به این صورت که شما یه متغیر جنرال دارین و در روال keydown تون میاین شرط میذارین که اگه مثلا شرط برقرار بود کدها اجرا بشن.


if sth then
کدهاتون
end if
----------------------------------------------------------------------------------
راستی با دستور goto هم میتونین از روی کدهاتون بپرین!:لبخند:

salehbagheri
سه شنبه 30 شهریور 1389, 18:37 عصر
در رویداد KeyDown در ابتدای کدهای وارد شده توسط خودتون کد زیر رو وارد کنید:

Private Sub TxtInfo_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtInfo.KeyDown
e.Handled = False
'Your Code
End Sub


البته اگه قصد دارید که در طول برنامه رویداد KeyDown رو اجرا کنید بهتره یه متغیر ایجاد کنید و بر اساس اون عملیات رو انجام بدید:


Private IsKeyDownEventActive As Boolean = False
Private Sub TxtInfo_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtInfo.KeyDown
If IsKeyDownEventActive Then
'Your Code
Else
e.Handled = False
End If
End Sub

yekta64
چهارشنبه 31 شهریور 1389, 08:25 صبح
در رویداد KeyDown در ابتدای کدهای وارد شده توسط خودتون کد زیر رو وارد کنید:

Private Sub TxtInfo_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtInfo.KeyDown
e.Handled = False
'Your Code
End Sub


البته اگه قصد دارید که در طول برنامه رویداد KeyDown رو اجرا کنید بهتره یه متغیر ایجاد کنید و بر اساس اون عملیات رو انجام بدید:


Private IsKeyDownEventActive As Boolean = False
Private Sub TxtInfo_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TxtInfo.KeyDown
If IsKeyDownEventActive Then
'Your Code
Else
e.Handled = False
End If
End Sub


بی نهایت ممنون دست عزیز
راستش من خودم این کار رو انجام داده بودم منتها قصدم از زدن این تاپیک این بود که یه راه حل بهتر پیدا کنم
به هر حال ممنون

ali_najari
چهارشنبه 31 شهریور 1389, 10:06 صبح
اگه ميخوايد كامل غير فعال بشه و هيچ كليدي عمل نكنه فقط كافيه در رويداد Keydown عبارت زير رو بنويسيد


e.Handled = True

ولي اگه ميخوايد فقط چند كليد كار نكنه بايد شرط بزاري به صورت زير



If e.keycode<>keys.return Or e.keycode<>e.keys.f2 then
'شرطي كه بايد درصورتي كه كليدي غير از اين دو كليد زد شد اجرا بشه
End if