تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] تغيير لون خلفية textbox عند انتقال المؤشر داخل الاداة
#3
السلام عليكم و رحمة الله و بركاته
افضل الحلول لهكذا عقبات , هي باعادة تصميم الكائن و فرض التغيرات في المناطق التي نريدها
و هي هنا عند التركيز و فقد التركيز
انشأ مشروع جديد و سميه مثلاً MyTextBox
اضف له كلاس باسم MyTextBox , ثم ضع بداخله الكود التالي
PHP كود :
Imports System.Runtime.InteropServices

Public Class MyTextBox Inherits TextBox

    Public 
Const WM_NCPAINT As Integer = &H85

    
<Flags()>
 
   Private Enum RedrawWindowFlags As UInteger
        Invalidate 
= &H2
        InternalPaint 
= &H3
        
[Erase] = &H4
        Validate 
= &H8
        NoInternalPaint 
= &H10
        NoErase 
= &H20
        NoChildren 
= &H40
        AllChildren 
= &H80
        UpdateNow 
= &H100
        EraseNow 
= &H200
        Frame 
= &H400
        NoFrame 
= &H800
    End Enum

    
<DllImport("User32.dll")>
 
   Public Shared Function GetWindowDC(ByVal hWnd As IntPtr) As IntPtr
    End 
Function

 
   <DllImport("user32.dll")>
 
   Private Shared Function ReleaseDC(ByVal hWnd As IntPtrByVal hDC As IntPtr) As Boolean
    End 
Function

 
   <DllImport("user32.dll")>
 
   Private Shared Function RedrawWindow(hWnd As IntPtrlprcUpdate As IntPtrhrgnUpdate As IntPtrflags As RedrawWindowFlags) As Boolean
    End 
Function

 
   Public Sub New()
 
       MyBase.BorderStyle Windows.Forms.BorderStyle.Fixed3D
    End Sub

    Protected Overrides Sub OnResize
(As System.EventArgs)
 
       MyBase.OnResize(e)
 
       RedrawWindow(Me.HandleIntPtr.ZeroIntPtr.ZeroRedrawWindowFlags.Frame Or RedrawWindowFlags.UpdateNow Or RedrawWindowFlags.Invalidate)
 
   End Sub

    Protected Overrides Sub WndProc
(ByRef m As Message)
 
       MyBase.WndProc(m)

 
       If m.Msg WM_NCPAINT Then
            Dim hDC 
As IntPtr GetWindowDC(m.HWnd)
 
           Using g As Graphics Graphics.FromHdc(hDC)
 
               If Me.Focused Then
                    g
.DrawRectangle(Pens.CornflowerBlue, New Rectangle(00Me.Width 1Me.Height 1))
 
               Else
                    g
.DrawRectangle(Pens.Gainsboro, New Rectangle(00Me.Width 1Me.Height 1))
 
               End If
 
               g.DrawRectangle(SystemPens.Window, New Rectangle(11Me.Width 3Me.Height 3))
 
           End Using
            ReleaseDC
(m.HWndhDC)
 
       End If

 
   End Sub

    Protected Overrides Sub OnGotFocus
(ByVal e As System.EventArgs)
 
       MyBase.OnGotFocus(e)
 
       Me.BackColor Color.Red
    End Sub

    Protected Overrides Sub OnLostFocus
(ByVal e As System.EventArgs)
 
       Me.BackColor Color.White
        MyBase
.OnLostFocus(e)
 
   End Sub
End 
Class 
اعمل Build للمشروع , سيندرج لك عنصر جديد في قائمة الادوات باسم MyTextBox .
الان اسحبه الى المشروع و تمتع بخصائصه الجديدة
انتبه الى الحدثين OnGotFocus , OnLostFoucs
قمنا بتغير لون الخلفية الى اللون الذي نريد  , غيرها لما تحب
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}


الردود في هذا الموضوع
RE: تغيير لون خلفية textbox عند انتقال المؤشر داخل الاداة - بواسطة ابو ليلى - 25-04-20, 11:40 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] طريقة توسيط النص داخل اداة comboBox سمير1404 7 3,870 24-08-25, 01:01 PM
آخر رد: أبو خالد الشكري
  [سؤال] تغيير الفورم الرئيسي عند تشغيل البرنامج في Visual Studio مع .NET 8؟ silverlord 2 659 09-03-25, 03:52 AM
آخر رد: silverlord
  [كود] كود تغيير حجم النص في التكست بوكس hassan 8 8,802 30-01-25, 02:33 AM
آخر رد: خالد كامل1
  محتاج كود انتقال خالد كامل1 2 444 22-01-25, 11:38 AM
آخر رد: قناص المدينة
  كود انتقال مؤشر الماوس من تكست الى تكست اخر خالد كامل1 1 474 20-01-25, 12:21 AM
آخر رد: خالد كامل1
  تغيير أسم ملف DOX.1 3 3,278 01-01-25, 09:37 PM
آخر رد: anes
  استدعاء من جدولين داخل اداه FlowLayoutPanel برجاء الافادة للضرورة جداً modymody300894 7 645 15-11-24, 11:02 AM
آخر رد: modymody300894
  كتابه عدد معين من الارقام داخل تيكست بوكس modymody300894 3 565 07-11-24, 09:15 PM
آخر رد: modymody300894
  تغيير مكان حفظ الصورة من قاعدة البيانات إلى مجلد في مسار البرنامج F.H.M 37 2,375 05-11-24, 08:30 AM
آخر رد: F.H.M
  ترتيب شجره الحسابات داخل الجريد فيو modymody300894 2 417 31-10-24, 12:27 PM
آخر رد: modymody300894

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


يقوم بقرائة الموضوع: