تقييم الموضوع :
  • 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 بايت / التحميلات : 24)
.zip   PlaceHolderTextBoxEx.zip (الحجم : 56.19 ك ب / التحميلات : 34)
الرد
تم الشكر بواسطة: مصمم هاوي , mir2 , mir2 , mmali127 , محمد كريّم , programmer_25


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [مشروع] أداة ListBox تسمح بتغيير لون العنصر المختار وكذلك المسافة بين العناصر Anas Mahmoud 4 502 13-09-20, 05:42 PM
آخر رد: Ali 2020
Video [درس فيديو] طريقة طباعة النص من تكست بوكس او الصورة من بكتشر بوكس ahmadpal 3 634 06-09-20, 08:05 AM
آخر رد: Ali 2020
  [مشروع] تصميم تطبيق بسيط لسورة البروج ( التزامن بين الصوت و النص ) عبد الهادي بهاب 0 225 03-09-20, 03:06 AM
آخر رد: عبد الهادي بهاب
Exclamation [VB.NET] حساب طول النص بدالة MesureString sniperjawadino 0 275 24-08-20, 07:46 PM
آخر رد: sniperjawadino
  [مشروع] تصميم برنامج مونتاج بين الصورة و النص لنشرها في النت عبد الهادي بهاب 2 843 22-08-20, 09:56 PM
آخر رد: عبد الهادي بهاب
  تقسيم النص بناء على معطيات معلومة سعود 2 645 08-04-20, 02:56 AM
آخر رد: سعود
Wink [مشروع] مشروع تحويل النص الى صوت مسموع والتحكم برفع الصوت وتغيير سرعته مع السورس كود ahmadpal 6 1,174 24-02-20, 05:05 PM
آخر رد: ahmadpal
Information [مشروع] موجة الأوامر CMD , Command Prompt , تنفيذ الأمر وأخذ النص الناتج إلى البرنامج عبدالله الدوسري 6 2,863 14-02-19, 05:35 AM
آخر رد: yosefphotography6
  [مثال] تعتيم الفورم عندما يكون غير نشط @@أبورائد@@ 12 6,275 17-08-16, 11:34 AM
آخر رد: Qutibah
  [مشروع] مثال بسيط (حتى لا يكون مجرد ملف تنفيذي) قراءة من موقع connectionstrings سعود 0 2,013 15-04-16, 01:58 PM
آخر رد: سعود

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


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