PDA

View Full Version : ساختن event



Ali.Net
چهارشنبه 19 تیر 1387, 10:57 صبح
ا سلام
من یه فرم دارم که حدود 20 تا توش textbox هست . و می خوام در هنگام ورود به هرکدومشون backcolor همون textbox عوض شه(برای مشخض بودن)
برای این کار نمی خوام برم تو eventهر 20 تاشون و داخل event enter کد زیر رو بنویسم :
;textbox1.backcolor = colors.yellow
می خوام تو run time این کارو بکنم
خودم یه فکر دارم ولی درست کار نمیکنه ! اگه کسی کد درست رو می دونه بهم کمک کنه.
private void Form1_Load(object sender, EventArgs e)
{
TextBox T;
foreach (Control C in this.Controls)
{
T = (TextBox)C


دیگه از اینجا به بعدشو گیر می کنم!


}
}

mehrnoosh_al62
چهارشنبه 19 تیر 1387, 11:22 صبح
سلام دست عزیز
میتونی از کد زیر استفاده کنی تو کد زیر هم با اینتر بین textbox ها حرکت میکنی هم رنگش عوض میشه



protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (msg.Msg == 0x0100)
{
switch (keyData)
{

case Keys.Enter:
{
this.SelectNextControl(this.ActiveControl, true, true, true, false);
if (this.ActiveControl is TextBox)
((TextBox)this.ActiveControl).SelectAll();
TextBox T;
foreach (Control C in this.Controls)
{
T = (TextBox)C;
if (T.Focused == true)
T.BackColor = Color.Red;
else
T.BackColor = Color.White;

}
return true;
}
}
}
return base.ProcessCmdKey(ref msg, keyData);
}

sinpin
چهارشنبه 19 تیر 1387, 11:40 صبح
اين موضوع بارها مطرح شده بهتره شما يك كتابخانه از كنترل هاي مشتق شده درست كنيد و تغييرات لازم رو آنجا بديد كه ديگه در UI مجبور به كدنويسي نباشيد.

happy65_sh
چهارشنبه 19 تیر 1387, 11:43 صبح
سلام
دوست عزيز چرا از كلاس ها استفاده نمي كني؟هم كارت را راحت مي كنند هم اگه بخواهي يه موقع بازهم textbox به فرمت اضافه كني به راحتي انجام مي شه.

naeeme
چهارشنبه 19 تیر 1387, 11:49 صبح
علاوه بر کد قبلی، شما از این کد هم می تونید استفاده کنین( اگر کارتون پیچیده نیست، کد ساده استفاده کنین)


private void textBox_Enter(object sender, EventArgs e)
{
(sender as TextBox).BackColor = Color.Yellow;
}

private void textBox_Leave(object sender, EventArgs e)
{
(sender as TextBox).BackColor = Color.White;
}

برای تمامی تکست باکسهاتون، متدهای رویدادهای leave و Enter رو برابر دو متد بالا قرار بدین.( یعنی وقتی متد رویداد رو تعریف می کنین، به جای دابل کلیلک کردن، نام این متدها رو بنویسین)