تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
سؤال بسيط في فيجوال بيسك
#1
السلام عليكم
انا عضو جديد و هذا اول موضوع لي و انا مبتدئ vb.net
اردت ان اسالكم سؤالا
لدي form بهذا الشكل

مكونة من اثنين textbox و button
اريد انه عندما يكون المؤشر في textbox1 و اضغط على الزر يكتب فيه "1"
و عندما يكون الموشر في textbox 2 و اضغط على الزر يكتب فيه "1"
و اقصد بالموشر مؤشر الكتابة طبعا
ارجو المساعدة و شكرا :confused:
الرد }}}}
تم الشكر بواسطة:
#2
[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
الرد }}}}
تم الشكر بواسطة:
#3
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 الذي يوجد مؤشر الكتابة فيه Smile
الرد }}}}
تم الشكر بواسطة:
#4
جايك بالحل الحين ..

هو المشكلة عند نقرك ع الزر الفوكس راح يروح من الزر ..

؟؟؟!!!:confused:
الرد }}}}
تم الشكر بواسطة:
#5
جبت طريقة بس ان شاء الله تعجبك !!

الطريقة:

نجعلها مرور ع الزر مو نقر حتى يتم المراد

حط الكود لحدث ( مرور الماوس فوق الزر - MouseHover )
PHP كود :
Private Sub Button1_MouseHover(ByVal sender As ObjectByVal e As System.EventArgsHandles Button1.MouseHover
        
If TextBox1.Focused Then
            TextBox1
.Text 1
            TextBox2
.Clear()

        ElseIf 
TextBox2.Focused Then
            TextBox2
.Text 1
            TextBox1
.Clear()
        
End If
    
End Sub 
الرد }}}}
تم الشكر بواسطة:
#6
السلام عليكم
عجبني سؤلك ولهذا بدي اجاوبك عليه واظن انه في طريقة اسهل كمان بس هذي طريقتي
هذا الكود انسخه وضعه في شاشة الكود


إقتباس :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
الرد }}}}
تم الشكر بواسطة:
#7
محمود اكرم كتب :السلام عليكم
عجبني سؤلك ولهذا بدي اجاوبك عليه واظن انه في طريقة اسهل كمان بس هذي طريقتي
هذا الكود انسخه وضعه في شاشة الكود




علما بان 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
الرد }}}}
تم الشكر بواسطة:
#8
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 كما لو أنه كان محدد

لذا فقد عالجت هذا القصور بجعل الكود كالتالي Smile
كود :
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
الرد }}}}
تم الشكر بواسطة:
#9
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

جربت طريقتك اخي و هي جيدة فعلا Wink و اشتغلت عندي :o
لكن اعرف اني (تقلت) لكن ممكن شرح الكود لأني مبتدئ و عايز اكون فاهم مش مجرد حافظ Smile
الرد }}}}
تم الشكر بواسطة:
#10
Aly El-Haddad كتب :لاحظت الآن قصوراً في كودي و هو عند تحديد TextBox ثم الضغط على أداة أخرى على الـForm لتأدية وظيفة ما ثم الضغط على Button1 يكتب الـ"1" في الـTextBox كما لو أنه كان محدد

لذا فقد عالجت هذا القصور بجعل الكود كالتالي Smile
كود :
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
الرد }}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  نقل واسترجاع ملفات بواسطة الفيجوال بيسك عبدالرحمن المكاوي 21 422 منذ 3 ساعة مضت
آخر رد: ابراهيم النعيمي
  [VB.NET] طلب التعديل في كود بسيط rabeh.ram 2 50 29-11-16, 11:10 PM
آخر رد: rabeh.ram
  [سؤال] مساعدة في الفيجوال بيسك عبدالرحمن المكاوي 1 59 28-11-16, 02:11 PM
آخر رد: عبدالرحمن المكاوي
  ربط قاعدة بيانات اكسس 2010 مع فيجوال 2012 diab4diab 2 80 15-11-16, 10:24 PM
آخر رد: thevirus
  عمل شاشة تسجيل دخول لبرنامج عبر فيجوال بيسك 2008 hishamdafer 2 105 12-11-16, 06:39 PM
آخر رد: thevirus
  [VB.NET] سؤال كيف يمكن معرفة التغير في قاعدة البيانات وليد الزنتاني 2 105 10-11-16, 01:20 AM
آخر رد: وليد الزنتاني
  لانشاء فولدر فى مسار محدد بالفيجوال بيسك nabil.1710 4 94 07-11-16, 06:31 PM
آخر رد: nabil.1710
  اريد مساعدة في التعامل مع هذا الموقع بالفيجوال بيسك soper 2 81 03-11-16, 07:08 PM
آخر رد: soper
  فيجوال 2015 لا يحتوي على ريبورت ؟ samira20 3 98 02-11-16, 10:14 PM
آخر رد: أبو عمر
Lightbulb [VB.NET] سؤال حول التعامل مع الماسح الضوئي salhigc 3 119 02-11-16, 04:15 PM
آخر رد: salhigc

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم