السلام عليكم
انا استخدم Label2.BringToFront()
واريد ان اجعل الليبل شفاف
وحاولت اكتر من مرة من الخصائص وبالكود
Label2.BackColor = Color.Transparent
ولكن للاسف يظهر خلفية الليبل
نفس خلفية الفورم
هل من حل؟
الشفافية لا تتحقق بالألوان فقط و لكنها تتحقق بالصور و الألوان
واستخدام Transparent Color غير كافية
تحتاج ان ترسم الكونترول أو تحتاج أن تبني كلاس جديد باستخدام الوراثة
عموما من الحلول أنك تستخدم شئ مثل هذا و لكن عليك أن تورثه من Label
PHP كود :
Public Class Canavas
Inherits ContainerControl
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or 32
Return cp
End Get
End Property
Public Sub New()
MyBase.SetStyle(ControlStyles.Opaque, True)
MyBase.SetStyle(ControlStyles.Selectable, False)
Me.DoubleBuffered = True
End Sub
End Class
تعديل في الكود أعلاه
لأنك محتاج SecurityPermission
PHP كود :
Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
Get
Dim SecPerm As New SecurityPermission(SecurityPermissionFlag.UnmanagedCode)
SecPerm.Demand()
Dim cp As System.Windows.Forms.CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or 32
Return cp
End Get
End Property
(18-10-17, 11:51 AM)a.ahmed كتب : [ -> ]PHP كود :
Label2.BackColor = Color.Transparent
Label2.Parent = GroupBox1
Label2.Location = New Point(Label2.Left - GroupBox1.Left, Label2.Top - GroupBox1.Top)
للاسف اخى مينفعش اعمل على اداة محددة
Label2.Parent = GroupBox1
لانى عايزه فوق جميع الادوات مع العلم انى اضيف اداة الصورة برمجيا حسب اختيار المستخدم
(18-10-17, 01:50 PM)silverlight كتب : [ -> ]الشفافية لا تتحقق بالألوان فقط و لكنها تتحقق بالصور و الألوان
واستخدام Transparent Color غير كافية
تحتاج ان ترسم الكونترول أو تحتاج أن تبني كلاس جديد باستخدام الوراثة
عموما من الحلول أنك تستخدم شئ مثل هذا و لكن عليك أن تورثه من Label
PHP كود :
Public Class Canavas
Inherits ContainerControl
Protected Overrides ReadOnly Property CreateParams() As CreateParams
Get
Dim cp As CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or 32
Return cp
End Get
End Property
Public Sub New()
MyBase.SetStyle(ControlStyles.Opaque, True)
MyBase.SetStyle(ControlStyles.Selectable, False)
Me.DoubleBuffered = True
End Sub
End Class
تعديل في الكود أعلاه
لأنك محتاج SecurityPermission
PHP كود :
Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
Get
Dim SecPerm As New SecurityPermission(SecurityPermissionFlag.UnmanagedCode)
SecPerm.Demand()
Dim cp As System.Windows.Forms.CreateParams = MyBase.CreateParams
cp.ExStyle = cp.ExStyle Or 32
Return cp
End Get
End Property
بارك الله فيك اخى الغالى
ولكن كما وضحت فى ردى السابق
عايزه فوق جميع الادوات مع العلم انى اضيف اداة الصورة برمجيا حسب اختيار المستخدم
مع العلم حاولت بالكود الخاص بك ولكن لم ينجح ايضا
النتيجة تظهر وقت التشغيل فقط
كود :
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label1.Parent = PictureBox1
End Sub
اخى سعود
والاخوة الكرام
اشكركم اولا للمساعدة
ولكن ارجو التركيز معى فى نقطة مهمة جدا
لاحظو الصور المرفقة
الصورة الاولى عندما استخدمت
Label1.Parent = PictureBox1
ظهر الكلام فوق PictureBox1
ولم يظهر فوق باقى PictureBoxs
التى تضاف برمجيا عن طريق المستخدم
الصورة الثانية
عندما استخدمت
label1.BringToFront
اى انه يظهر فوق كل الادوات وبالفعل ظهر فوق كل الادوات كما موضح بالصورة
ولكن المشكلة هنا
انا خلفية الليبل تاخذ نفس لون خلفية الفورم كما موضح بالصورة
فهل من حل لجعل الليبل يظهر فوق كل الادوات كما بالصورة التانية
ولكن ايضا تكون لون خلفيته شفاف وليس نفس لون خلفية الفورم؟
هذا هو المطلوب فقط
بانتظار مساعدتكم
لانى حاولت جديد ولم اصل لنتيجة جيدة
(19-10-17, 03:14 AM)سعود كتب : [ -> ]
النتيجة تظهر وقت التشغيل فقط
كود :
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label1.Parent = PictureBox1
End Sub
http://vb4arb.com/vb/showthread.php?tid=...#pid107747
هل من مساعد؟