تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[مشروع] أداه TextBoxPlaceholder تسمح باظهار تلميح حول مربع النص عندما يكون فارغا
#1
بسم الله الرحمن الرحيم

السلام عليكم اعضاء المنتدى الكرام

قد طلب احد الاخوة في المنتدى طريقة عمل تلميح لمربع النص او مايعرف ب Placeholder ،

لذلك قمت ببناء اداه تشتق من TextBox ويمكنها فعل ذلك :

   

يوجد بها 3 خصائص تحت تبويب Placeholder وهم

Hint : التلميح المطلوب اظهاره عندما يكون مربع النص فارغا
HideHintWhenFocused : هل تريد اخفاء التلميح عندما ينتقل التركيز للاداه 
HintColor : لون التلميح

   

الكود الاصلي مأخوذ من هذا الموضوع : https://stackoverflow.com/a/50926164

ما قمت بتطويره هو خاصية تغيير اللون وتحديد اذا كنت تريد اخفاء التلميح ام لا وكذلك بعض التحسينات في المنطق من حيث دعم اللغة العربية والاتجاه من اليمين لليسار :

الكود كاملا هو : 


كود :
Imports System.ComponentModel

Public Class TextBoxPlaceholder
   Inherits TextBox


   Private m_Hint As String
   <Description("Specify The Text To Be Shawn as a Placeholder"),
   Category("Placeholder")>
   Public Property Hint As String
       Get
           Return m_Hint
       End Get
       Set(ByVal value As String)
           m_Hint = value
           Me.Invalidate()
       End Set
   End Property


   Private m_HideHintWhenFocused As Boolean = True
   <Description("Specify Wheather the hint will be hidden when the tool loses focus"),
   Category("Placeholder")>
   Public Property HideHintWhenFocused As Boolean
       Get
           Return m_HideHintWhenFocused
       End Get
       Set(ByVal value As Boolean)
           m_HideHintWhenFocused = value
           Me.Invalidate()
       End Set
   End Property


   Private m_HintColor As Color = SystemColors.GrayText
   <Description("Specify The Hint Color"),
   Category("Placeholder")>
   Public Property HintColor As Color
       Get
           Return m_HintColor
       End Get
       Set(ByVal value As Color)
           m_HintColor = value
           Me.Invalidate()
       End Set
   End Property
   Protected Overrides Sub WndProc(ByRef m As Message)
       MyBase.WndProc(m)

       If m.Msg = &HF Then
           If Not (Focused AndAlso HideHintWhenFocused) _
               AndAlso String.IsNullOrEmpty(Me.Text) _
               AndAlso Not String.IsNullOrEmpty(Me.Hint) Then
               Using g = Me.CreateGraphics()
                   TextRenderer.DrawText(g, Me.Hint, Me.Font, Me.ClientRectangle, HintColor, Me.BackColor,
                       TextFormatFlags.Top Or If(RightToLeft, TextFormatFlags.RightToLeft Or TextFormatFlags.Right, TextFormatFlags.Left))
               End Using
           End If
       End If
   End Sub

   Protected Overrides Sub OnTextChanged(e As EventArgs)
       MyBase.OnTextChanged(e)
       If String.IsNullOrEmpty(Me.Text) AndAlso Not HideHintWhenFocused Then
           Invalidate()
       End If
   End Sub
End Class

قم بتحميل الكلاس واضفه الى مشروعك ثم قم بعمل Build Solution ستجد الاداه ظهرت في مربع الادوات 

   

ومرفق ايضا مثال للاطلاع

اتمنى ان احصل على اقتراحاتكم للتطوير ،

شكرا


الملفات المرفقة
.zip   TextBoxPlaceholder.zip (الحجم : 813 بايت / التحميلات : 121)
.zip   PlaceHolderTextBoxEx.zip (الحجم : 56.19 ك ب / التحميلات : 145)
الرد }}}
تم الشكر بواسطة: مصمم هاوي , mir2 , mir2 , mmali127 , محمد كريّم , programmer_25


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الان نفذ العمليات والدوال في مربع النص وكأنك تكتب في خلية اكسل Taha Okla 2 851 03-03-23, 03:17 PM
آخر رد: mrfenix93
Wink [مشروع] مشروع تحويل النص الى صوت مسموع والتحكم برفع الصوت وتغيير سرعته مع السورس كود ahmadpal 8 4,746 04-08-22, 05:08 AM
آخر رد: abo ragab
  [مشروع] جلب سطر النص اللذي تم حفظه الى ملف نصي مرة اخرى الى الفورم سعود 1 1,109 26-07-22, 01:36 AM
آخر رد: سعود
  [مشروع] استخلاص الحروف و الارقام والرموز من مربع النص او اي كونترول تضيفه سعود 0 1,200 15-01-22, 06:23 PM
آخر رد: سعود
  sitemap maker قد يكون مكرر سعود 2 1,026 15-01-22, 05:24 PM
آخر رد: سعود
  [مشروع] أداة ListBox تسمح بتغيير لون العنصر المختار وكذلك المسافة بين العناصر Anas Mahmoud 4 1,932 13-09-20, 05:42 PM
آخر رد: Ali 2020
Video [درس فيديو] طريقة طباعة النص من تكست بوكس او الصورة من بكتشر بوكس ahmadpal 3 2,664 06-09-20, 08:05 AM
آخر رد: Ali 2020
  [مشروع] تصميم تطبيق بسيط لسورة البروج ( التزامن بين الصوت و النص ) عبد الهادي بهاب 0 1,093 03-09-20, 03:06 AM
آخر رد: عبد الهادي بهاب
Exclamation [VB.NET] حساب طول النص بدالة MesureString sniperjawadino 0 1,312 24-08-20, 07:46 PM
آخر رد: sniperjawadino
  [مشروع] تصميم برنامج مونتاج بين الصورة و النص لنشرها في النت عبد الهادي بهاب 2 2,247 22-08-20, 09:56 PM
آخر رد: عبد الهادي بهاب

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


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