ورود

View Full Version : سوال: نوشتن متن در لیبل در کنترل های تکراری



علیرضا5
شنبه 05 اسفند 1396, 05:54 صبح
سلام
دوستان
بنده با کد زیر 10 لیبل ایجاد کردم حالا میخوام در یک باتون کدی بنویسم که مثلا متن لیبل سوم بشه xxxx
کدش رو چطوری باید نوشت
لطفا راهنمایی بفرمایید
باتشکر



for (int i = 0; i < 10; i++)
{
Label Lab = new Label();
Lab.ID += i;
Lab.Text = i;
div1.Controls.Add(Lab);
}

ramtinak
شنبه 05 اسفند 1396, 13:29 عصر
سلام، اول باید یه اسم در نظر بگیری براشون!

کدت رو اینجوری کردم:
for (int i = 0; i < 10; i++){
Label Lab = new Label();
Lab.Name = "labelX" + i;
Lab.ID += i;
Lab.Text = i;
div1.Controls.Add(Lab);
}
الان که دیدم، فکر کنم این کدت برای Asp.NET هست، چون ID داره!


// label3
int indexedLabel = 2;
// -1 yani hichi entekhab nashode
int selectedIndex = -1;

// حلفه
for (int i = 0; i < div1.Controls.Count;i++)
{
// اگه آیتم تایپمون برابر با لیبل بود
if (div1.Controls[i].GetType() == typeof(Label))
{
// کّست می کنیم به لیبل
var lbl = div1.Controls[i] as Label;
//چون نام تعریف کردیم پس میگیم اگه ناممون شروعش با این بود:


if (lbl.Name.ToLower().StartsWith("labelx"))
{
// قسمت لیبل ایکس رو حذف می کنیم
var number = lbl.Name.ToLower().Replace("labelx", "");
try
{
// تبدیلش می کنیم به اینتجر
int parsed = int.Parse(number);
// اگه برابر بود
if (indexedLabel == parsed)
{
selectedIndex = i;
break;
}
}
catch { }


}
}
}


if (selectedIndex != -1)
{
// ایندکس انتخاب شده رو میذاریم داخل کنترل ها و کلش رو کّست می کنیم به لیبل
// بعد تکست رو عوض می کنیم
((Label)div1.Controls[selectedIndex]).Text = "ABC";
}


موفق باشید.