PDA

View Full Version : تغییر رنگ همزمان با تغییر فوکوس در textbox



f_pakzad
پنج شنبه 31 مرداد 1387, 16:52 عصر
با سلام
میخوام موقع ثبت اطلاعات با رفتن روی هر textbox رنگ اون عوض شه.
از رویداد textchange و leave استفاده کردم.اما به اون چیزی که میخواستم نرسیدم.از طرفی باعث می شه که به ازای هر textbox دو خط کد به برنامه اضافه بشه.
راهش چیه؟؟؟

Sajjad.Aghapour
پنج شنبه 31 مرداد 1387, 18:23 عصر
از رویداد Enter استفاده کن

f_pakzad
پنج شنبه 31 مرداد 1387, 19:11 عصر
اگه درست متوجه شده باشم..
یه بار باید تو رویداد enter رنگش رو عوض کنیم و یه بار هم تو رویداد leave برای textbox قبلی مقدار اولیه(رنگ سفید)رو بدیم.یعنی برای 3 تا text box میشه 6 خط کد.مثل این برنامه ای گه گذاشتم.
راهی هست که مثلا فوکوس جاری رو بگیریم و رنگش رو عوض کنیم؟یا یه راه راحت تر؟

linux
پنج شنبه 31 مرداد 1387, 19:12 عصر
از رویداد Enter استفاده کن
بهتر یک کلاس جدید درست کنی که از تکست باکس به ارث می رسد و این کارها را در آن انجام بدهی

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;
}
}