سؤال بسيط في فيجوال بيسك - boty - 19-06-13
السلام عليكم
انا عضو جديد و هذا اول موضوع لي و انا مبتدئ vb.net
اردت ان اسالكم سؤالا
لدي form بهذا الشكل
مكونة من اثنين textbox و button
اريد انه عندما يكون المؤشر في textbox1 و اضغط على الزر يكتب فيه "1"
و عندما يكون الموشر في textbox 2 و اضغط على الزر يكتب فيه "1"
و اقصد بالموشر مؤشر الكتابة طبعا
ارجو المساعدة و شكرا :confused:
سؤال بسيط في فيجوال بيسك - 3booody - 19-06-13
[COLOR="#800000"]السلام عليكم ورحمة الله وبركاته
ضع هذا الكود[/COLOR]
كود :
Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click
TextBox1.Text = "1"
End Sub
ولاتنسى ان الكود في الحدث Click
سؤال بسيط في فيجوال بيسك - boty - 19-06-13
3booody كتب :[COLOR="#800000"]السلام عليكم ورحمة الله وبركاته
ضع هذا الكود[/COLOR]
كود :
Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click
TextBox1.Text = "1"
End Sub
ولاتنسى ان الكود في الحدث Click
شكرا اخي لكن هذا لم يحقق مرادي
اريد عند الضغط على button يكتب "1" في ال textbox الذي يوجد مؤشر الكتابة فيه
سؤال بسيط في فيجوال بيسك - فانتسي ارت - 19-06-13
جايك بالحل الحين ..
هو المشكلة عند نقرك ع الزر الفوكس راح يروح من الزر ..
؟؟؟!!!:confused:
سؤال بسيط في فيجوال بيسك - فانتسي ارت - 19-06-13
جبت طريقة بس ان شاء الله تعجبك !!
الطريقة:
نجعلها مرور ع الزر مو نقر حتى يتم المراد
حط الكود لحدث ( مرور الماوس فوق الزر - MouseHover )
PHP كود :
Private Sub Button1_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseHover If TextBox1.Focused Then TextBox1.Text = 1 TextBox2.Clear()
ElseIf TextBox2.Focused Then TextBox2.Text = 1 TextBox1.Clear() End If End Sub
سؤال بسيط في فيجوال بيسك - محمود اكرم - 19-06-13
السلام عليكم
عجبني سؤلك ولهذا بدي اجاوبك عليه واظن انه في طريقة اسهل كمان بس هذي طريقتي
هذا الكود انسخه وضعه في شاشة الكود
إقتباس :Dim b, s As Boolean
Sub SelectCurser()
b = False ' b text1.text
s = False ' s text2.text
End Sub
Private Sub TextBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.Click
SelectCurser()
b = True
End Sub
Private Sub TextBox2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.Click
SelectCurser()
s = True
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If b = True Then
TextBox1.Text = "1"
ElseIf s = True Then
TextBox2.Text = "1"
End If
End Sub
علما بان Dim b, s As Boolean
توضع داخل القسم العام اي بعد
Public Class Form1
والباقي تضعه بعد القسم العام وقبل End Class
سؤال بسيط في فيجوال بيسك - Aly El-Haddad - 19-06-13
محمود اكرم كتب :السلام عليكم
عجبني سؤلك ولهذا بدي اجاوبك عليه واظن انه في طريقة اسهل كمان بس هذي طريقتي
هذا الكود انسخه وضعه في شاشة الكود
علما بان Dim b, s As Boolean
توضع داخل القسم العام اي بعد
Public Class Form1
والباقي تضعه بعد القسم العام وقبل End Class
السلام عليكم،
عندي ملاحظة على كودك و هي: أنك تستخدم الحدث Click للـTextBox و هذا الحدث ليس الوحيد الذي يحدد الـTextBox حيث يمكن تحديده مثلاً من زر TAB أو من كود في مكان آخر مثل TextBox.Focus
لذا فقمت بالتعديل على الكود ليكن كالتالي:
كود :
Public Class Form1
Private txt1 As Boolean = False
Private txt2 As Boolean = False
Private Sub TextBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
txt2 = False
txt1 = True
End Sub
Private Sub TextBox2_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.Enter
txt1 = False
txt2 = True
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If txt1 Then
TextBox1.Text = "1"
txt1 = False
End If
If txt2 Then
TextBox2.Text = "1"
txt2 = False
End If
End Sub
End Class
سؤال بسيط في فيجوال بيسك - Aly El-Haddad - 19-06-13
Aly El-Haddad كتب :السلام عليكم،
عندي ملاحظة على كودك و هي: أنك تستخدم الحدث Click للـTextBox و هذا الحدث ليس الوحيد الذي يحدد الـTextBox حيث يمكن تحديده مثلاً من زر TAB أو من كود في مكان آخر مثل TextBox.Focus
لذا فقمت بالتعديل على الكود ليكن كالتالي:
كود :
Public Class Form1
Private txt1 As Boolean = False
Private txt2 As Boolean = False
Private Sub TextBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
txt2 = False
txt1 = True
End Sub
Private Sub TextBox2_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.Enter
txt1 = False
txt2 = True
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If txt1 Then
TextBox1.Text = "1"
txt1 = False
End If
If txt2 Then
TextBox2.Text = "1"
txt2 = False
End If
End Sub
End Class
لاحظت الآن قصوراً في كودي و هو عند تحديد TextBox ثم الضغط على أداة أخرى على الـForm لتأدية وظيفة ما ثم الضغط على Button1 يكتب الـ"1" في الـTextBox كما لو أنه كان محدد
لذا فقد عالجت هذا القصور بجعل الكود كالتالي
كود :
Public Class Form1
Private txt1 As Boolean = False
Private txt2 As Boolean = False
Private hLastCtrl As New IntPtr
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
For Each C As Control In Me.Controls
AddHandler C.Leave, AddressOf SetLastFocusedControl
Next
End Sub
Private Sub SetLastFocusedControl(ByVal sender As System.Object, ByVal e As System.EventArgs)
hLastCtrl = sender.Handle
End Sub
Private Sub TextBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
txt2 = False
txt1 = True
End Sub
Private Sub TextBox2_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.Enter
txt1 = False
txt2 = True
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If (hLastCtrl = TextBox1.Handle) AndAlso txt1 Then
TextBox1.Text = "1"
txt1 = False
End If
If (hLastCtrl = TextBox2.Handle) AndAlso txt2 Then
TextBox2.Text = "1"
txt2 = False
End If
End Sub
End Class
سؤال بسيط في فيجوال بيسك - boty - 19-06-13
Aly El-Haddad كتب :السلام عليكم،
عندي ملاحظة على كودك و هي: أنك تستخدم الحدث Click للـTextBox و هذا الحدث ليس الوحيد الذي يحدد الـTextBox حيث يمكن تحديده مثلاً من زر TAB أو من كود في مكان آخر مثل TextBox.Focus
لذا فقمت بالتعديل على الكود ليكن كالتالي:
كود :
Public Class Form1
Private txt1 As Boolean = False
Private txt2 As Boolean = False
Private Sub TextBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
txt2 = False
txt1 = True
End Sub
Private Sub TextBox2_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.Enter
txt1 = False
txt2 = True
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If txt1 Then
TextBox1.Text = "1"
txt1 = False
End If
If txt2 Then
TextBox2.Text = "1"
txt2 = False
End If
End Sub
End Class
جربت طريقتك اخي و هي جيدة فعلا و اشتغلت عندي :o
لكن اعرف اني (تقلت) لكن ممكن شرح الكود لأني مبتدئ و عايز اكون فاهم مش مجرد حافظ
سؤال بسيط في فيجوال بيسك - Aly El-Haddad - 20-06-13
Aly El-Haddad كتب :لاحظت الآن قصوراً في كودي و هو عند تحديد TextBox ثم الضغط على أداة أخرى على الـForm لتأدية وظيفة ما ثم الضغط على Button1 يكتب الـ"1" في الـTextBox كما لو أنه كان محدد
لذا فقد عالجت هذا القصور بجعل الكود كالتالي
كود :
Public Class Form1
Private txt1 As Boolean = False
Private txt2 As Boolean = False
Private hLastCtrl As New IntPtr
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
For Each C As Control In Me.Controls
AddHandler C.Leave, AddressOf SetLastFocusedControl
Next
End Sub
Private Sub SetLastFocusedControl(ByVal sender As System.Object, ByVal e As System.EventArgs)
hLastCtrl = sender.Handle
End Sub
Private Sub TextBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Enter
txt2 = False
txt1 = True
End Sub
Private Sub TextBox2_Enter(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.Enter
txt1 = False
txt2 = True
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If (hLastCtrl = TextBox1.Handle) AndAlso txt1 Then
TextBox1.Text = "1"
txt1 = False
End If
If (hLastCtrl = TextBox2.Handle) AndAlso txt2 Then
TextBox2.Text = "1"
txt2 = False
End If
End Sub
End Class
بعدما أستخدمت طريقة أخذ آخر Control تم الضغط عليه فلم أجد حاجة لأي من txt1 أو txt2
الآن أصبح الكود:
كود :
Public Class Form1
Private hLastCtrl As New IntPtr
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
For Each C As Control In Me.Controls
AddHandler C.Leave, AddressOf SetLastFocusedControl
Next
End Sub
Private Sub SetLastFocusedControl(ByVal sender As System.Object, ByVal e As System.EventArgs)
hLastCtrl = sender.Handle
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If (hLastCtrl = TextBox1.Handle) Then
TextBox1.Text = "1"
End If
If (hLastCtrl = TextBox2.Handle) Then
TextBox2.Text = "1"
End If
End Sub
End Class
|