منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة فى جعل label شفاف بعد استخدام label1.BringToFront
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم
انا استخدم Label2.BringToFront()
واريد ان اجعل الليبل شفاف

وحاولت اكتر من مرة من الخصائص وبالكود
Label2.BackColor = Color.Transparent
ولكن للاسف يظهر خلفية الليبل
نفس خلفية الفورم

هل من حل؟
PHP كود :
Label2.BackColor Color.Transparent
Label2
.Parent GroupBox1
Label2
.Location = New Point(Label2.Left GroupBox1.LeftLabel2.Top GroupBox1.Top
الشفافية لا تتحقق بالألوان فقط و لكنها تتحقق بالصور و الألوان
واستخدام 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.OpaqueTrue)
 
           MyBase.SetStyle(ControlStyles.SelectableFalse)
 
           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.LeftLabel2.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.OpaqueTrue)
 
           MyBase.SetStyle(ControlStyles.SelectableFalse)
 
           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

هل من مساعد؟
!!!!!!!!1!!!!!!!!!!!!!!!
جمعة مباركة