PDA

View Full Version : سوال در مورد Form_load



mehdihalla
دوشنبه 11 خرداد 1394, 11:14 صبح
سلام دوستان.کد زیر رو دارم

private void form_Load(object sender, EventArgs e)
{
foreach (Control ctrl in grpBoxInfo.Controls)
{
if (ctrl.GetType() == typeof(TextBox) || ctrl.GetType() == typeof(project.Components.TextBox))
{
ctrl.TextChanged += new EventHandler(ctrl_TextChanged);
}
}

می خواستم بدونم دقیقا چی کار میکنه؟ به نظر خودم میاد تکست باکسی پیدا کرد و اگه تکستش تغییر کرده بود براش event_handler درست میکنه.آره، درسته؟
و اینکه این کد کی اجرا میشه؟به محض اجرا شدن فرم؟ خیلی ممنون از توجهتون.

محمد رضا فاتحی
دوشنبه 11 خرداد 1394, 11:30 صبح
سلام این فرم میاد تموم کنترلهایی که از نوع textbox یا کامپوننت های ارث گرفته شده از textbox هستند رو در زمان اجرا فرم رویداد TextChange رو با تابع ctrl_TextChanged به کنترلها اضافه می کنه

mehdihalla
پنج شنبه 21 خرداد 1394, 11:21 صبح
سلام این فرم میاد تموم کنترلهایی که از نوع textbox یا کامپوننت های ارث گرفته شده از textbox هستند رو در زمان اجرا فرم رویداد TextChange رو با تابع ctrl_TextChanged به کنترلها اضافه می کنه
سلام دوباره.میشه یه مقدار توضیح بدین درست متوجه نشدم..ببخشید..
الان این تکه از کد اولین کدی هست که پس از باز کردن برنامه اجرا میشه؟

محمد رضا فاتحی
پنج شنبه 21 خرداد 1394, 11:51 صبح
نگاه کنید اگه فرم form اولین فرمیه که توی برنامه اجرا میشه هنگامی که فرمتون لود شد به کنترل های تکسباکس رویداد تغییر متن(Text Change) رو اختصاص می ده که هر رویداد یه تابع داده که هنگامی که رخ داد اون تابع اجرا میشه
که توی مثال شما اسمش ctrl_TextChanged. اگه بازهم متوجه نشدی بگید تا بیشتر تر راهنمایی کنم

RmeXXXXXXXXX
پنج شنبه 21 خرداد 1394, 19:46 عصر
این کد رو میشه روان تر هم نوشت:

private void form_Load(object sender, EventArgs e)
{
foreach (Control ctrl in grpBoxInfo.Controls)
{
if (ctrl is TextBox || ctrl is project.Components.TextBox)

{
ctrl.TextChanged += ctrl_TextChanged;

}
}




بدین ترتیب تمام کنترل های TextBox و project.Component.TextBox موجود در grpBoxInfo پیدا شده و در رخدادگردان تغییر متن (TextChanged Event Handler) متدی بنام ctrl_TextChanged ثبت میشود. بصورت ساده تر: با تغییر متن (کادرهایی متنی گروپ باکس مذکور) این متد اجرا میشود.

asman.abi
پنج شنبه 21 خرداد 1394, 22:43 عصر
این کد رو میشه روان تر هم نوشت:

private void form_Load(object sender, EventArgs e)
{
foreach (Control ctrl in grpBoxInfo.Controls)
{
if (ctrl is TextBox || ctrl is project.Components.TextBox)

{
ctrl.TextChanged += ctrl_TextChanged;

}
}




بدین ترتیب تمام کنترل های TextBox و project.Component.TextBox موجود در grpBoxInfo پیدا شده و در رخدادگردان تغییر متن (TextChanged Event Handler) متدی بنام ctrl_TextChanged ثبت میشود. بصورت ساده تر: با تغییر متن (کادرهایی متنی گروپ باکس مذکور) این متد اجرا میشود.

این که همونه!
منظور از روان تر یعنی چه؟

RmeXXXXXXXXX
پنج شنبه 21 خرداد 1394, 23:11 عصر
استفاده از کلمه is و حذف GetType و typeof ، منم نگفتم اختراع کردم که! همون کد شما رو به شکل ساده تر، روانتر و با قابلیت خوانده شدن بیشتر نوشتم.