View Full Version : کار با رویداد صفحه کلید
lady64
دوشنبه 16 مرداد 1391, 00:05 صبح
سلام . این کد ساده چرا کار نمیکنه . مثلا وقتی کلید a رو از صفحه کلید فشار میدم میخوام تو textbox بنویسه ولی اتفاقی نمی افته .
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.A Then
TextBox1.Text = "l is press"
End If
End Sub
یا حتی این کد :
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyValue = 65 Then
Me.Text = "a"
End If
End Sub
و متاسفانه این هم کار نمیکنه :
Private Sub Form1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
If e.KeyChar = "a" Then
Me.Text = "a press"
End If
End Sub
مشکل چیه ؟ پیشاپیش ممنونم
JaVa
دوشنبه 16 مرداد 1391, 00:21 صبح
سلام . این کد ساده چرا کار نمیکنه . مثلا وقتی کلید a رو از صفحه کلید فشار میدم میخوام تو textbox بنویسه ولی اتفاقی نمی افته .
باید توی رویداد خود تکس باکس بنویسی
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyCode = Keys.A Then
TextBox1.Text = "l is press"
End If
End Sub
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.A Then
TextBox1.Text = "l is press"
End If
End Sub
یا حتی این کد :
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
If e.KeyValue = 65 Then
Me.Text = "a"
End If
End Sub
باید focus رو فرم باشد
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyValue = 65 Then
Me.Text = "a"
End If
End Sub
و متاسفانه این هم کار نمیکنه :
Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.A Then
Me.Text = "a press"
End If
End Sub
Saman_12
دوشنبه 16 مرداد 1391, 00:38 صبح
سلام . این کد ساده چرا کار نمیکنه . مثلا وقتی کلید a رو از صفحه کلید فشار میدم میخوام تو textbox بنویسه ولی اتفاقی نمی افته .
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyCode = Keys.A Then
TextBox1.Text = "l is press"
End If
End Sub
یا حتی این کد :
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
If e.KeyValue = 65 Then
Me.Text = "a"
End If
End Sub
و متاسفانه این هم کار نمیکنه :
Private Sub Form1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
If e.KeyChar = "a" Then
Me.Text = "a press"
End If
End Sub
مشکل چیه ؟ پیشاپیش ممنونم
هیچ کدوم مشکلی ندارن!
merlin425
دوشنبه 16 مرداد 1391, 02:59 صبح
خاصیت key preview مربوط به فرم رو true کردی
چک کن اگه نباشه کد های رویدادهای keydown keyup keypress اجرا نمیشه
lady64
دوشنبه 16 مرداد 1391, 09:05 صبح
خاصیت key preview مربوط به فرم رو true کردی
چک کن اگه نباشه کد های رویدادهای keydown keyup keypress اجرا نمیشه
مرسی . اینو نمیدونستم . حل شد . خیلی خیلی ممنونم . و یک سوال دیگه . این کد زیر رو باید در چه رویدادی نوشت و چکار میکنه ؟
If e.KeyValue = 65 Then
e.Handled = True
Else
e.Handled = False
End If
و دو سوال هم در مورد رویدادهای موس . این کد تعداد دفعات کلیک رو بررسی میکنه ولی فقط در مورد یک بار کلیک کار میکنه .
If e.Clicks = 2 Then
Me.Text = 2
End If
هم تو رویداد muse-click نوشتم و هم mouse-up و mouse-down
و در مورد middle. آیا منظور همون اسکرول موس هست . اگه آره برای من این کد هم کار نمیکنه:
If e.Button = Windows.Forms.MouseButtons.Middle Then
Me.BackColor = Color.BlanchedAlmond
End If
ولی right,left کار میکنن. ممنون از اینکه وقت میزارید
merlin425
دوشنبه 16 مرداد 1391, 16:14 عصر
سوال 1 : توی رویداد KeyDown اگر A را بزنی Handleel رو true میکنه و به سیستم عامل می فهمونه که رویداد مدیریت شده است موقعی کاربرد داره که مثلآ میخای کلید وارد شده رو null کنی و از بین ببری مثلآ textbox شماره تلفن که باید عدد بگیره اینجا به این شکل می تونی کاراکتر های غیر عددی رو Null کنی و handled رو هم true کنی که بوق نزنه
سوال 2 : من اینو تو MouseDown نوشتم و با تک کلیک 1 داد با دابل کلیک 2 شاید سرعت دابل کلیکت زیاد سریع نیست
سوال 3 : بله همون اسکرول موس این رو هم تو MouseDown نوشتم جواب داد البته منظور چرخوندن اسکرول نیستا باید اسکرول رو به پایین فشار بدی مثل کلیک
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.