تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة فى جعل label شفاف بعد استخدام label1.BringToFront
#1
السلام عليكم
انا استخدم Label2.BringToFront()
واريد ان اجعل الليبل شفاف

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

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

بارك الله فيك اخى الغالى

ولكن كما وضحت فى ردى السابق

عايزه فوق جميع الادوات مع العلم انى اضيف اداة الصورة برمجيا حسب اختيار المستخدم

مع العلم حاولت بالكود الخاص بك ولكن لم ينجح ايضا
الرد }}}
تم الشكر بواسطة:
#5
النتيجة تظهر وقت التشغيل فقط
كود :
 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       Label1.Parent = PictureBox1
   End Sub
الرد }}}
تم الشكر بواسطة: الماجيك مسعد
#6
اخى سعود
والاخوة الكرام

اشكركم اولا للمساعدة

ولكن ارجو التركيز معى فى نقطة مهمة جدا

لاحظو الصور المرفقة



الصورة الاولى عندما استخدمت
       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

هل من مساعد؟
الرد }}}
تم الشكر بواسطة:
#7
!!!!!!!!1!!!!!!!!!!!!!!!
الرد }}}
تم الشكر بواسطة:
#8
جمعة مباركة
الرد }}}
تم الشكر بواسطة:



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


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