PDA

View Full Version : سوال: تغییر گروهی تعدادی از ابزار ها



dadavaran
دوشنبه 23 اردیبهشت 1392, 12:13 عصر
باسلام
میخواستم نحوه انتخاب هم زمان تعداد زیادی از ابزار را بدونم
واضحتر اینکه:
تعداد 50 عدد لیبل داریم (از lbl0 تا lbl49) حالا باید تکست 25 عدد از این لیبل ها، شماره بخورن (از lbl20 تا lbl44) بدین صورت :

Lbl20.text="1";
Lbl21.text="2";
Lbl22.text="3";
Lbl23.text="4";
...
Lbl44.text="44";
چطوری باید از حلقه استفاده کنم که دیگه نیاز نباشه تکست تمام لیبل هارو یکی یکی، تغییر بدم
با تشکر

hamid_hr
دوشنبه 23 اردیبهشت 1392, 12:58 عصر
froeach(control tmp this.controls)
{
if(tmp is lable)
tmp.text = "";
}

dadavaran
دوشنبه 23 اردیبهشت 1392, 13:37 عصر
ممنون از راهنمایتون
راستش متوجه کدتون نشدم، اگه ممکنه ساده تر توضیح بدید ...
یعنی دیگه نیاز به استفاده از for نیست؟

Tiam121
دوشنبه 23 اردیبهشت 1392, 13:45 عصر
نه دیگه نیازی نیست این کد واسه پاک کردن خاصیت تکست کنترل هایی هست که توی فرم جاری داری.
برای حالت های دیگه یکم تغییرش بدی جواب میده

dadavaran
سه شنبه 24 اردیبهشت 1392, 07:37 صبح
ممنون
ولی نمی خوام که خاصیت تکست همه لیبلها پاک بشه فقط میخوام که یه تعداد معین از اونها تغییر نام بدهند
امیدوارم که متوجه منظرم شده باشید

Tiam121
سه شنبه 24 اردیبهشت 1392, 09:41 صبح
int i=0;
froeach(control tmp this.controls)
{
i++;

if(tmp is lable)
tmp.text = i.ToString();
}



این تمام تکست تمامی لیبل های فرمت رو به ترتیب از 1 شماره گذاری میکنه.اگر لیبل های خاصی رو بخوای تغییر بدی(یه همه لیبل ها) باید این دستور رو به صورت یه تابع بنویسی و لیبل های مورد نظرت رو واسش ارسال کنی

dadavaran
یک شنبه 29 اردیبهشت 1392, 11:41 صبح
باسلام
برای تغییر متن تعداد لیبل مورد نظر از کد زیر استفاده کردم که بازم جواب نمیده، نمیدونم چرا ارور میده؟

string[] sl= new string[25];
sl = lable[].text;
int i = 0;
while (i< 25)
{
sl[i].text = (i + 1).ToString();
}
لطفا یکی بگه که ایرادش از چیه؟

dadavaran
سه شنبه 31 اردیبهشت 1392, 07:37 صبح
باسلام
اگه ممکنه یکی بگه چرا lable[].text ایراد میگیره؟

hamid_hr
سه شنبه 31 اردیبهشت 1392, 08:39 صبح
خب ببینید اگه شما یک ارایه از لیبل ها داشته باشد این نمیفهمه که تکس کدوم لیبل رو برداره
با for میشه تکس همه رو گرفت

dadavaran
سه شنبه 31 اردیبهشت 1392, 13:27 عصر
خب ببینید اگه شما یک ارایه از لیبل ها داشته باشد این نمیفهمه که تکس کدوم لیبل رو برداره
با for میشه تکس همه رو گرفت

ممنون
خب مشکل همینه، چجوری باید از for استفاده کنم !؟
لطفا میشه در قالب یه تکه کد توضیح بدید که فرضا تکسهای lbl16 تا lbl35 برداشته بشه و تکس اونا از 1 تا 20 شماره بخوره؟

dadavaran
چهارشنبه 01 خرداد 1392, 12:27 عصر
سلام
یکی نیست جواب مارو بده ؟؟؟؟؟؟؟؟؟؟

khokhan
چهارشنبه 01 خرداد 1392, 13:27 عصر
سلام
یکی نیست جواب مارو بده ؟؟؟؟؟؟؟؟؟؟

در رویداد کلیک باتن کدهاتون بایس یه چیزی شبیه این باشه :لبخند:

البته من این کد رو برا 4 تا لیبل امتحان کردم اگه بیشتر باشه بایستی مقدار دهی بشه


private void button1_Click(object sender, EventArgs e)
{

string[] array = new string[] { "1", "2", "3", "4" };

int newNum = 0;
foreach (Label lbl in this.Controls.OfType<Label>())
{

lbl.Text = array[newNum];
newNum++;
}
}

dadavaran
چهارشنبه 01 خرداد 1392, 13:35 عصر
در رویداد کلیک باتن کدهاتون بایس یه چیزی شبیه این باشه :لبخند:

البته من این کد رو برا 4 تا لیبل امتحان کردم اگه بیشتر باشه بایستی مقدار دهی بشه


private void button1_Click(object sender, EventArgs e)
{

string[] array = new string[] { "1", "2", "3", "4" };

int newNum = 0;
foreach (Label lbl in this.Controls.OfType<Label>())
{

lbl.Text = array[newNum];
newNum++;
}
}

ممنون از راهنمایتون
فرض کنید حدو 50 عدد لیبل داریم و من هربار قراره که تعدادی از اونارو به ترتیب شماره گذاری کنم مثلا از لیبل 20 تا 40 از یک شماره بخوره و ممکنه دفعه بعد از لیبل 30 تا 50 شماره بخوره الی آخر...
اگه ممکنه در یان مورد هم یه راهنمایی بفرمائید
با تشکر

khokhan
چهارشنبه 01 خرداد 1392, 14:00 عصر
ممنون از راهنمایتون
فرض کنید حدو 50 عدد لیبل داریم و من هربار قراره که تعدادی از اونارو به ترتیب شماره گذاری کنم مثلا از لیبل 20 تا 40 از یک شماره بخوره و ممکنه دفعه بعد از لیبل 30 تا 50 شماره بخوره الی آخر...
اگه ممکنه در یان مورد هم یه راهنمایی بفرمائید
با تشکر

خوب بایس یه لیست باکس بذاری با چک باکس برای هر آیتم اونوقت کلیه کنترلهای فرم رو که لیبل بودند توی اون لیست کنی و از اون لیست لیبلهایی که قراره تکستشون عوض شه رو انتخاب کنی

یا اینکه لیبلها به دیتابیس متصل باشند ودر یه متد تعریف کنین کلیه کنترلهایی که متنشون به فرض این کلمه بود به فلان عدد تبدیل بشه

یا اینکه به جای لیبل از چک باکس استفاده کنی و اونهایی که تیک خوردند متنشون به فلان عدد عوض بشه