با سلام
میخوام موقع ثبت اطلاعات با رفتن روی هر textbox رنگ اون عوض شه.
از رویداد textchange و leave استفاده کردم.اما به اون چیزی که میخواستم نرسیدم.از طرفی باعث می شه که به ازای هر textbox دو خط کد به برنامه اضافه بشه.
راهش چیه؟؟؟
با سلام
میخوام موقع ثبت اطلاعات با رفتن روی هر textbox رنگ اون عوض شه.
از رویداد textchange و leave استفاده کردم.اما به اون چیزی که میخواستم نرسیدم.از طرفی باعث می شه که به ازای هر textbox دو خط کد به برنامه اضافه بشه.
راهش چیه؟؟؟
از رویداد Enter استفاده کن
Close your eyes, take a deep breath, click your heels three times, and say, "There's no better thing than Inversion of Control and Dependency Injection, generic specialization, the decorator pattern, chains of responsibilities, and extensible software."
اگه درست متوجه شده باشم..
یه بار باید تو رویداد enter رنگش رو عوض کنیم و یه بار هم تو رویداد leave برای textbox قبلی مقدار اولیه(رنگ سفید)رو بدیم.یعنی برای 3 تا text box میشه 6 خط کد.مثل این برنامه ای گه گذاشتم.
راهی هست که مثلا فوکوس جاری رو بگیریم و رنگش رو عوض کنیم؟یا یه راه راحت تر؟
بهتر یک کلاس جدید درست کنی که از تکست باکس به ارث می رسد و این کارها را در آن انجام بدهی
using System.Windows.Forms;
using System.ComponentModel;
using System.Drawing;
[ToolboxBitmap(typeof(TextBox), "System.Windows.Forms.TextBox")]
public class myTextBox : TextBox
{
private Color _BColor = Color.Yellow;
private Color _fColor = Color.RoyalBlue;
private Color _tempBColor;
public myTextBox()
{
_tempBColor = this.BackColor;
InitializeComponent();
}
private void InitializeComponent()
{
this.SuspendLayout();
//
// myTextBox
//
this.ResumeLayout(false);
}
protected override void OnEnter(EventArgs e)
{
this.BackColor = _BColor;
this.SelectAll();
}
protected override void OnLeave(EventArgs e)
{
this.BackColor = _tempBColor;
}
}