تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] دالة تتعرف علي الزر الذي تم النقر عليه وتغير قيمة مربع النص المقابل
#1
عندي دالة للتعرف علي الزر الذي تم النقر عليه بواسطة المستخدم ثم تغير لون خلفية مربع النص المقابل والكود يعمل بشكل صحيح ، الا انه لتغيير قيمة مربع خيار لا يعمل ويعطي خطا يوضح ان الخاصية (.Checked ) ليس عضو ، وكما تعلمون ان مربع الخيار له هذه الخاصية.

كود :
Private Sub BtnBlue_Click(sender As Object, e As EventArgs) Handles BtnRed.Click, BtnBlue.Click, BtnGreen.Click
[size=small][font=Consolas] [/font][/size]
[size=small][font=Consolas]        Dim BtnName As String = CType(sender, Button).Name[/font][/size]
[size=small][font=Consolas]        Dim ColorName as String = BtnName.Trimstart("B","t", "n")[/font][/size]
[size=small][font=Consolas]     [/font][/size][size=small][font=Consolas]   Dim RadioBtnName as string = [/font][/size][size=small][font=Consolas]ColorName + "RadioBtn"[/font][/size]
[size=small][font=Consolas]        dim TxtName as string = ColorName + "Txt"[/font][/size]
[size=small][font=Arial, sans-serif] [/font][/size]
[size=small][font=Consolas]    [/font][/size]
[size=small][font=Consolas]       Me.controls.Tabcontrol1(TxtName[/font][/size][size=small][font=Consolas]).Backcolor = colorname[/font][/size]
[size=small][font=Consolas]       [/font][/size]
[size=small][font=Consolas]       Me.controls.Tabcontrol1([/font][/size][size=small][font=Consolas]RadioBtnName).Checked = True [/font][/size]
[size=small][font=Consolas] [/font][/size]
    End Sub


اي اقتراح لتحسين الكود مقبول

وشكرا


كود :
Private Sub BtnBlue_Click(sender As Object, e As EventArgs) Handles BtnRed.Click, BtnBlue.Click, BtnGreen.Click

       Dim BtnName As String = CType(sender, Button).Name
       Dim ColorName as String = BtnName.Trimstart("B","t", "n")
       Dim RadioBtnName as string = ColorName + "RadioBtn"
       dim TxtName as string = ColorName + "Txt"

   
      Me.controls.Tabcontrol1(TxtName).Backcolor = colorname
     
      Me.controls.Tabcontrol1(RadioBtnName).Checked = True

   End Sub
الرد
تم الشكر بواسطة:
#2
سبب الخطأ هنا هو أنك تستخدم String و ليس Control عليك ان تقوم بعمل loop باستخدام ControlCollection لكي تجد الكونترول الذي تريده و ذلك باستخدام اسم الكونترول  ثم تقوم بعمل Cast لتغيير القيمة Checked الي True


الكود التالي يوضح الفكرة و عليك ان تتبع نفس الاسلوب في الكود الخاص بك

لكن كن حذرا عند تمرير اسم الكونترول لأنه يجب ان يتم تمرير الاسم بكل بدقة حتي لا يحدث معك أخطاءا

PHP كود :
Dim controlName As String "RadioButton1"
 
       Dim ctrl As Control CType(NothingControl)
 
       For Each contrl As Control In Controls
            If contrl
.Name controlName Then
                ctrl 
contrl
                Exit 
For
 
           End If
 
       Next

        Dim radioBtn 
As RadioButton CType(ctrlRadioButton)
 
       radioBtn.Checked Not radioBtn.Checked 
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] كيفية جعل قيمة افتراضية من داخل كومبوبوكس موجود في داتا جريد فيو محمد صلاح ابراهيم 4 72 أمس, 02:31 PM
آخر رد: elgokr
  دالة الوقت now alfauori 4 81 أمس, 12:07 AM
آخر رد: elgokr
  [سؤال] عندما أقوم بارسال كلام من تيكست الى صفحة ويب لو كان النص عربي يظهر ؟؟؟ dametucorazon 14 189 11-07-18, 06:19 AM
آخر رد: elgokr
  [سؤال] تنفيذ الكود اللى عليه Checked ابو روضة 11 179 10-07-18, 06:06 PM
آخر رد: elgokr
  كيف اصنع شريط تقدم مثل الذي موجود في مشغلات الفيديو معاذ ابراهيم العامري 3 123 08-07-18, 07:15 PM
آخر رد: elgokr
  سؤال عن الاكمال التلقائي لصندوق النص hatem555 5 117 18-06-18, 08:25 AM
آخر رد: elgokr
  التحقق من قيمة حقل في قاعدة البيانات ZaerAllail 3 109 16-06-18, 03:31 PM
آخر رد: حريف برمجة
  أصغر قيمة ؟ hichem1 6 138 10-06-18, 01:15 AM
آخر رد: hichem1
Question [سؤال] مساعدة أريد أن يستخرج ال textbox من ال webbrowser الذي أضفته في مشروعي hichem1 2 81 06-06-18, 05:02 PM
آخر رد: hichem1
  [سؤال] أريد أن أنشئ textbox غير مسموح بالكتابة عليه مطلقا hichem1 3 91 06-06-18, 03:41 AM
آخر رد: hichem1

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


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