03-12-22, 12:44 AM
(01-12-22, 12:39 PM)strongriseman كتب : عند حذف زر واعادته مرة اخرى لا تعم لالتعليمات البرمجية المكتوبة علي هذا الزرالسلام عليكم و رحمة الله و بركاته
مع انه يحمل نفس الاسم وكذلك بالنسبة لباقي الادوات
هل من حل
اخي الكريم اذا كان الامر يتعلق بزر معين واحد فقط .... يمكنك استحداث ذاك الزر برمجيا (اي زر ديناميكي) و اسناد الحدث المناط به برمجيا ايضا بعد تحديد خصائص ذلك الزر المستحدث من جيث اللوكيشن و النكتس و الباك كولور و عيرها من الخصائص
بحيث اذا قمت بحذف الزر المستحدث ستقى المهمة او الحدث المناط به شاغر و تفعل تلك الاخيرة باعادته
ادرك ان الشرح سيتوهك قليلا لذلك سارفق مثال لذلك
PHP كود :
Public Class Form1
Private Sub CreateButton() 'استحداث الزر
Dim btn As New Button
AddHandler btn.Click, AddressOf ClickMe 'اضافة حدث عند الظغط على الزر
'تحديد خصائص الزر
btn.Width = 95
btn.Height = 23
btn.Location = New Point(10, 10)
btn.BackColor = SystemColors.Control
btn.Text = "تغيير لون الشاشة"
btn.Name = "Button1"
Me.Controls.Add(btn)
End Sub
Private Sub DeleteButton() 'حذف الزر
For i = Controls.Count - 1 To 0 Step -1
If Controls(i).Name.Contains("Button1") Then
Controls(i).Dispose()
End If
Next
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
CreateButton()
End Sub
Private Sub ClickMe(ByVal Sender As Object, ByVal e As EventArgs)
If Me.BackColor = Color.Lime Then
Me.BackColor = Color.Blue
Else
Me.BackColor = Color.Lime
End If
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Select Case Button2.Text
Case Is = "حذف الزر"
DeleteButton()
Button2.Text = "اعادة الزر"
Case Is = "اعادة الزر"
CreateButton()
Button2.Text = "حذف الزر"
End Select
End Sub
End Class

