PDA

View Full Version : سوال: مشکل این کد چیه



systam
پنج شنبه 07 شهریور 1392, 16:54 عصر
سلام این کد C#‎ رو دربنامه به راحتی اجرا میشه که کارش اینه هر چی تکس باکس در فرم وجود داره رو زمانی که فوکوس میشه رنگ بک تکسباکس رو عوض میشه
public Form1()
{
InitializeComponent();
}
public static void ChangeTextBoxBackColor()
{


}

private void Form1_Load(object sender, EventArgs e)
{
foreach (Control ctrl in this.Controls)
{
if (ctrl is TextBox)


ctrl.Enter += new EventHandler(TextBox_Enter);
ctrl.Leave += new EventHandler(TextBox_Leave);



}
}
private void TextBox_Enter(object sender, EventArgs e)
{
TextBox txtBox = (TextBox)sender;
txtBox.SelectAll();
txtBox.BackColor = Color.LightBlue;
}

private void TextBox_Leave(object sender, EventArgs e)
{
TextBox txtBox = (TextBox)sender;
txtBox.BackColor = Color.White;
}
}
}
تبدیلش کردم به وی بی اصلا کار نمیکنه



For Each control As Control In Me.Controls
If (TypeOf control Is TextBox) Then
AddHandler control.Enter, AddressOf Me.control_Enter
AddHandler control.Leave, AddressOf Me.control_Leave
End If
Next
End Sub
Private Sub control_Enter(ByVal sender As Object, ByVal e As EventArgs)
CType(sender, Control).BackColor = Color.Yellow


Private Sub control_Leave(ByVal sender As Object, ByVal e As EventArgs)
CType(sender, Control).BackColor = Color.Empty
End Sub

rezaprogrammer
پنج شنبه 07 شهریور 1392, 18:21 عصر
End Sub رو جاگذاشتی.

Private Sub control_Enter(ByVal sender As Object, ByVal e As EventArgs)
CType(sender, Control).BackColor = Color.Yellow
End Sub
Private Sub control_Leave(ByVal sender As Object, ByVal e As EventArgs)
CType(sender, Control).BackColor = Color.Empty
End Sub
Private Sub FclsNewStuff_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) _
Handles MyBase.Load
For Each control As Control In Me.Controls
If (TypeOf control Is TextBox) Then
AddHandler control.Enter, AddressOf Me.control_Enter
AddHandler control.Leave, AddressOf Me.control_Leave
End If
End Sub
Next

shahryari
پنج شنبه 07 شهریور 1392, 18:39 عصر
سلام
بیخیال تبدیل کد بشو
خودت یک تکست باکس سفارشی ایجاد کن
اول یک کلاس جدید با نام CustomTextbox به پروژه ات اضافه کن

بعد این کدها را در داخل کلاس ایجاد شده منتقل کن
Imports System.Drawing
Public Class CustomTextbox

Inherits System.Windows.Forms.TextBox
Private _focus_color As Color
Private _normal_color As Color
Public Property focus_color As Color
Get
Return _focus_color
End Get
Set(ByVal value As Color)
_focus_color = value
End Set
End Property

Public Property normal_color As Color
Get
Return _normal_color
End Get
Set(ByVal value As Color)
_normal_color = value
End Set
End Property
Private Sub Class1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.GotFocus
Me.BackColor = focus_color
End Sub

Private Sub Class1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LostFocus
Me.BackColor = normal_color
End Sub
End Class
پروژه را بیلد کن
یک آیکون جدید به اول تولباکس اضافه شده که ایکون این تکست باکس جدیدیه که ساختی
این ایکون را با ماوس به روی فرمت دراگ کن
میبینی یک تکست باکس به فرمت اضافه میشه
در قسمت خصوصیات این تکست باکس دو خاصیت جدید وجود دار بنامهای normal_color و focus_color که رنگ دلخواهت را میتونی بهش بدی