سلام به همگی
من احتیاج به یک حلقه دارم که بتونم بین تمام کنترل های موجود بر روی فرم حرکت کنم... مثلا اگر 2تا کنترل textbox روی فرم بود بتونم اونا رو بخونم و به خاصیت هاشون دسترسی داشته باشم...
ممنون میشم اگر راهنمایی کنید...
سلام به همگی
من احتیاج به یک حلقه دارم که بتونم بین تمام کنترل های موجود بر روی فرم حرکت کنم... مثلا اگر 2تا کنترل textbox روی فرم بود بتونم اونا رو بخونم و به خاصیت هاشون دسترسی داشته باشم...
ممنون میشم اگر راهنمایی کنید...
سلام دوست عزیز
با Foreach میتونی
foreach (Control c in this.Controls)
{
if (c is TextBox)
{
TextBox f = (TextBox)c;
MessageBox.Show(f.Text);
}
}
موفق باشی
جسارت نباشه ولي كدتون باگ داره بعنوان مثال وقتي ابزاري داخل group قرار بگيره با اين كد بهش دسترسي نداريم. من اين كد رو پيشنهاد ميدم:
public static void LoadSkin(Control root )
{
foreach (Control ctl in root.Controls)
{
LoadSkin(ctl);
if (ctl is TextBox )
{
TextBox tmp;
tmp = (TextBox)ctl;
tmp.Font = new System.Drawing.Font("B Roya", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(178)));
tmp.RightToLeft = System.Windows.Forms.RightToLeft.No;
tmp.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
}
}
}
با اين كلاس و تابع اگر كنترلي خودش باز حاوي كنترل ديگري بود واردش ميشه و اشيا روي اونو ميخونه.
سلام ali_habibi1384
خواهش میکنم ممنون از نظرت
ولی اگه کنترل ها داخل مثلا GroupBox یا هر چیز دیگه ای هم باشه هم میتونی از دستور زیر استفاده کنی
foreach (Control c in this.groupBox1.Controls)
{
if (c is TextBox)
{
TextBox f = (TextBox)c;
MessageBox.Show(f.Text);
}
}
چيزي كه ميگي درست اما اين مستلزم اينه كه شما اسم گروپ باكس ها رو بدوني و يكي اينجوري كلي كد بايد براش بزني شما در نظر بگير كه يه برنامه نوشتي با 100 تا فرم توي هر فرمش هم ممكنه چندتا گروپ باكس باشه واسه هر كدوم بخواي تغيير بدي كه نميشه. ولي با كلاسي كه من نوشتم شما فقط كافيه يكبار بنويسي سپس يك فرم رو بهش پاس بدي تا كليه كنترلهاي موجود روي اونو تغيير بدي.سعي كن كدي كه مينويسي كم حجم بهينه و كلي باشه و مطابق ما روشهاي برنامه نويسي نه اينكه فقط يكجوري كد بنويسي كه جواب بده.
موفق باشي
درسته
اما واسه وقتیه که تعداد فرمها یا پنل ها یا .... زیاد باشه
پيشنهاد ميكنم اول تست كنيد پس!
تست کردم حق با شماست
اگر درست متوجه شده باشم زمانی که شی collection نباشه سراغ If می ره
درسته ؟
درسته.اگر داخل شي شي ديگه اي وجد نداشته باشه بقيه الگوريتم اجرا ميشه اين برنامه از توابع تو در تو استفاده شده.