26-10-21, 01:16 AM
26-10-21, 07:58 PM
(26-10-21, 01:16 AM)paveldida كتب : [ -> ]السلام عليكمأحتاج كود لتغيير خلفية textbox الذي يكون في حالة select أي المحدد
و عليكم السلام و رحمة الله و بركاته
اليك بهذا المثال لعله مثل ما تنشد
31-10-21, 11:17 PM
بارك الله فيك أخي
01-11-21, 12:22 AM
ممكن كود آخر يكون مختصر اكثر
01-11-21, 10:03 AM
(01-11-21, 12:22 AM)paveldida كتب : [ -> ]ممكن كود آخر يكون مختصر اكثر
اصف لمشروعك مؤقت و ازرع فيه الكود التالي مع مراعاة ان يكون المؤقت مفعل
كود :
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
For Each ctrl As Control In Me.Controls
If TypeOf ctrl Is TextBox Then
If ctrl.Name = Me.ActiveControl.Name Then
ctrl.BackColor = Color.BlueViolet
Else
ctrl.BackColor = Color.White
End If
End If
Next
End Sub02-11-21, 05:26 PM
اخي سلام عليكم اذا كنت ستستخدم الكثر من مربعات النص هذه فانه ليس من الحكمة استخدام احداث Enter و Leave لكل مربع نص على حدة
وكذلك فكرة استخدام تايمر تستهلك من عتاد الكمبيوتر بلا داعي
قمت بكتابة كلاس بمثابة تكست بوكس معدل يضيف خاصية ActiveBackColor بحيث تسند اليها اللون الذي تريده للخلفية في حالة النشاط
اضف هذا الكلاس الى مشروعك وقم بعمل Build و من ثم اضف الاداه الى مشروعك بدلا من ال textbox العادي
[attachment=27120]
ثم اسند اللون الذي تريده من الخاصية ActiveBackColor
[attachment=27121]
[attachment=27122]
قمت بالتعديل على مثال الاخ asmarsou
وكذلك فكرة استخدام تايمر تستهلك من عتاد الكمبيوتر بلا داعي
قمت بكتابة كلاس بمثابة تكست بوكس معدل يضيف خاصية ActiveBackColor بحيث تسند اليها اللون الذي تريده للخلفية في حالة النشاط
كود :
Imports System.ComponentModel
Public Class BackColorTextBox
Inherits TextBox
#Region "Private Variables"
Private IsActive As Boolean = False
Private DefaultBackgroundColor As Color = Nothing
#End Region
#Region "Properties"
Private m_ActiveBackColor As Color = SystemColors.Window
<Description("Back Color When Active لون الخلفية في حالة النشاط"),
Category("Appearance")>
Public Property ActiveBackColor As Color
Get
Return m_ActiveBackColor
End Get
Set(value As Color)
m_ActiveBackColor = value
If IsActive Then setBackColor()
End Set
End Property
#End Region
#Region "Events Overrides"
Protected Overrides Sub OnEnter(e As EventArgs)
Console.WriteLine("On Enter")
IsActive = True
setBackColor()
MyBase.OnEnter(e)
End Sub
Protected Overrides Sub OnLeave(e As EventArgs)
Console.WriteLine("On Leave")
IsActive = False
resetDefaultBackColor()
MyBase.OnLeave(e)
End Sub
#End Region
#Region "Private Methods"
Private Sub setBackColor()
If DefaultBackgroundColor = Nothing Then DefaultBackgroundColor = BackColor
BackColor = m_ActiveBackColor
End Sub
Private Sub resetDefaultBackColor()
BackColor = DefaultBackgroundColor
DefaultBackgroundColor = Nothing
'خلي قيمة الباكجراوند الاصلية بلا شيء
End Sub
#End Region
End Classاضف هذا الكلاس الى مشروعك وقم بعمل Build و من ثم اضف الاداه الى مشروعك بدلا من ال textbox العادي
[attachment=27120]
ثم اسند اللون الذي تريده من الخاصية ActiveBackColor
[attachment=27121]
[attachment=27122]
قمت بالتعديل على مثال الاخ asmarsou
02-11-21, 06:37 PM
(02-11-21, 05:26 PM)Anas Mahmoud كتب : [ -> ]اخي سلام عليكم اذا كنت ستستخدم الكثر من مربعات النص هذه فانه ليس من الحكمة استخدام احداث Enter و Leave لكل مربع نص على حدة
وكذلك فكرة استخدام تايمر تستهلك من عتاد الكمبيوتر بلا داعي
قمت بكتابة كلاس بمثابة تكست بوكس معدل يضيف خاصية ActiveBackColor بحيث تسند اليها اللون الذي تريده للخلفية في حالة النشاط
كود :
Imports System.ComponentModel
Public Class BackColorTextBox
Inherits TextBox
#Region "Private Variables"
Private IsActive As Boolean = False
Private DefaultBackgroundColor As Color = Nothing
#End Region
#Region "Properties"
Private m_ActiveBackColor As Color = SystemColors.Window
<Description("Back Color When Active لون الخلفية في حالة النشاط"),
Category("Appearance")>
Public Property ActiveBackColor As Color
Get
Return m_ActiveBackColor
End Get
Set(value As Color)
m_ActiveBackColor = value
If IsActive Then setBackColor()
End Set
End Property
#End Region
#Region "Events Overrides"
Protected Overrides Sub OnEnter(e As EventArgs)
Console.WriteLine("On Enter")
IsActive = True
setBackColor()
MyBase.OnEnter(e)
End Sub
Protected Overrides Sub OnLeave(e As EventArgs)
Console.WriteLine("On Leave")
IsActive = False
resetDefaultBackColor()
MyBase.OnLeave(e)
End Sub
#End Region
#Region "Private Methods"
Private Sub setBackColor()
If DefaultBackgroundColor = Nothing Then DefaultBackgroundColor = BackColor
BackColor = m_ActiveBackColor
End Sub
Private Sub resetDefaultBackColor()
BackColor = DefaultBackgroundColor
DefaultBackgroundColor = Nothing
'خلي قيمة الباكجراوند الاصلية بلا شيء
End Sub
#End Region
End Class
اضف هذا الكلاس الى مشروعك وقم بعمل Build و من ثم اضف الاداه الى مشروعك بدلا من ال textbox العادي
ثم اسند اللون الذي تريده من الخاصية ActiveBackColor
قمت بالتعديل على مثال الاخ asmarsou
جزاك الله عنا كل خير اخي الفاضل
03-11-21, 10:52 PM
بارك الله فيك و رحم الله اباك