PDA

View Full Version : مقداردهي چندين textbox در يك حلقه



aliimanypoor
جمعه 23 تیر 1391, 12:39 عصر
با سلام دوستان
چطور مي توان مقدار چندين label يا textbox را در يك حلقه تغيير داد.
مثلا درست دستور زير در سي شارپ چيست.

for(int i=0;i<20;i++) q
label +i .text=" text" q

Mahmoud.Afrad
جمعه 23 تیر 1391, 12:52 عصر
foreach (TextBox txt in this.Controls.OfType<TextBox>())
{
txt.Text = "text";
}
//OR
this.Controls.OfType<TextBox>().ToList().ForEach(txt => txt.Text = "text");در این کد همه تکست باکسها پیمایش میشند.

Sirwan Afifi
جمعه 23 تیر 1391, 12:54 عصر
به این صورت می تونید عمل کنید :

foreach (var item in Controls.OfType<TextBox>())
{
item.Text = "";
}

اگر هم می خواید که TextBox های خاصی رو متنشون رو مقداردهی کنید از این متد استفاده کنید :

public void IntialTextBox(params TextBox[] txt)
{
foreach (var item in txt)
{
item.Text = "txt";
}
}

و به این صورت استفاده کنید :

IntialTextBox(textBox1, textBox2, textBox3, textBox4, textBox5);

aliimanypoor
سه شنبه 27 تیر 1391, 13:36 عصر
با سلام
متاسفم كه برنامه نويسي مي كنيد و نمي تونيد يه پاسخ سريع و راحت و با كدهاي اوليه و يه توضيح مختصر بدهيد.
جالبه هر دو پاسخ با foreach و با textboxهست و بسيار غير واضح و بدون توضيح آيا اگه خودتان بوديد از اين پاسخ ها چيزي سر در مي آورديد.
در صورتيكه يه مثال ساده نوشتم با حلقه for و براي label
و كدشو توي سي شارپ مي خواستم حتي اگه مي خواستيد برنامش و بنويسيد و بفرستيد چند كيلوبايت بيشتر نمي شد و چند دقيقه بيشتر وقت نمي خواست

Mahmoud.Afrad
سه شنبه 27 تیر 1391, 15:15 عصر
دیگه آسون تر از دوخط کدی که من یا آقای Sirwan Afifi (http://barnamenevis.org/member.php?36227-Sirwan-Afifi) گذاشتیم!!
اگر هم اون ظوری که شما در پست اول مثال زدید میشد خوب معادلش رو میذاشتیم لابد نمیشده که کسی نذاشته.
اگر هم که چیزی رو متوجه نمیشید خوب پبرسید لازم نیست تاسف بخورید.

Arash_janusV3
سه شنبه 27 تیر 1391, 15:21 عصر
با سلام
متاسفم كه برنامه نويسي مي كنيد و نمي تونيد يه پاسخ سريع و راحت و با كدهاي اوليه و يه توضيح مختصر بدهيد.
جالبه هر دو پاسخ با foreach و با textboxهست و بسيار غير واضح و بدون توضيح آيا اگه خودتان بوديد از اين پاسخ ها چيزي سر در مي آورديد.
در صورتيكه يه مثال ساده نوشتم با حلقه for و براي label
و كدشو توي سي شارپ مي خواستم حتي اگه مي خواستيد برنامش و بنويسيد و بفرستيد چند كيلوبايت بيشتر نمي شد و چند دقيقه بيشتر وقت نمي خواست

شما برای برنامه نویسی اشکالاتی دارید
1_هنوز معنی دستور ساده ای مثل حلقه ها را نمی دانید
2_هیچ زحمتی برای آنچه می خواهید به دست بیاورید نمی کشید
3_توقع نداشته باشید وقتی سوال می پرسید همه پروژه در اختیار شما بگذارند
4_مفاهیم ابتدایی برنامه نویسی را فرا بگیرید

موفق باشید

aliimanypoor
سه شنبه 27 تیر 1391, 15:21 عصر
خوب بود به جاي جواب دادن به حر فاي من يه برنامه كامل مي ذاشتيد
تاسف

aliimanypoor
سه شنبه 27 تیر 1391, 15:26 عصر
كاش همه اينقدر مدعي نبودند
دو خط كد هم پروژه نميشه اطلاع و سواد كافي نداريد توجيه نكنيد
هم با حلقه for ميشه هم با label منتها كدشو نمي دونم
برنامه بايد با متعلقاتش باشد يا راهنمايي كافي نه دو خط كد كه كپي كني و ارور بده ندوني از كجاست
براي يه برنامه به اين سادگي نمي تونيد يه جواب درست بديد ديگه هيچي

mehdi.mousavi
سه شنبه 27 تیر 1391, 17:02 عصر
سلام.

با سلام متاسفم كه برنامه نويسي مي كنيد و نمي تونيد يه پاسخ سريع و راحت و با كدهاي اوليه و يه توضيح مختصر بدهيد. جالبه هر دو پاسخ با foreach و با textboxهست و بسيار غير واضح و بدون توضيح آيا اگه خودتان بوديد از اين پاسخ ها چيزي سر در مي آورديد. در صورتيكه يه مثال ساده نوشتم با حلقه for و براي label و كدشو توي سي شارپ مي خواستم حتي اگه مي خواستيد برنامش و بنويسيد و بفرستيد چند كيلوبايت بيشتر نمي شد و چند دقيقه بيشتر وقت نمي خواست

کدهای اولیه؟ پاسخ سریع و راحت؟ غیر واضح؟ چند کیلو بایت؟؟؟؟؟ (هووممم... در بلاد کفر ملت در یک کیلوبایت بازی می نویسن، اونوقت ما سر نوشتن یه حلقه ساده جر و بحث می کنیم!) اولین توصیه من این هستش که از Compiler دوری کنید تا کسی صدمه نبینه! (توصیه دوم هم این هستش که توصیه اول رو جدی بگیرید). نوشتن یه Loop ساده اینقدر جنجال آفرینی نداره! شما در متن پست اول نوشته اید: " چطور مي توان مقدار چندين label يا textbox را در يك حلقه تغيير داد"، حالا شکایت می کنید که چرا هر دو نفر با TextBox پاسخ رو نوشته اند؟ اپراتور "یا" داره به پاسخ دهنده این مجال رو میده که در مورد هر یک از اون دو خواست نظر بده و هر دو نفر علاقمند بودن که در مورد TextBox بنویسند و هرگز "نمی تونید و نباید" بر اونها خرده بگیرید.


خوب بود به جاي جواب دادن به حر فاي من يه برنامه كامل مي ذاشتيد تاسف
نه، دنیا اینطوری نیست. چو بد کردی مباش ایمن زآفات... اینطوری نیستش شما ظرف 6 پست اولتون به دیگران تاخت و تاز کنید و دیگران با شما مدارا کنن. (اگر چه اینکارو کرده اند...)


كاش همه اينقدر مدعي نبودند
من نمیبینم کسی در این تاپیک ادعایی کرده باشه. تنها چیزی که می بینم، بازخورد تلخی بوده که بواسطه پاسخی که دو تا از کاربران سایت به شما داده اند، از شما دریافت کرده اند.


دو خط كد هم پروژه نميشه اطلاع و سواد كافي نداريد توجيه نكنيد
شما که نمیدونید چطوری چنین چیز ساده ای رو میشه انجام داد، چطوری در مورد دیگران قضاوت می کنید؟


برنامه بايد با متعلقاتش باشد يا راهنمايي كافي نه دو خط كد كه كپي كني و ارور بده ندوني از كجاست براي يه برنامه به اين سادگي نمي تونيد يه جواب درست بديد ديگه هيچي
آهان! یعنی Unit Test داشته باشه، Document بشه، چند پاراگراف توضیح هم بهش ضمیمه بشه و ... بعدش شما هم Copy & Paste اش کنید و Bingo!

در هر حال، کد مورد نظر از LINQ استفاده کرده، احتمالا به همین دلیل هستش که نتونستید باهاش کار کنید یا متوجهش نشدید. آخه چند صباحی هستش که دنیا تغییر کرده، ابزار جدیدی در اختیار برنامه نویسان به اسم LINQ قرار گرفته که باعث میشه کمتر بنویسن تا بیشتر انجام بشه. در این مورد بهتون توضیح نمیدم، چون بدون شک بیشتر باعث گمراهی شما میشه. کد فوق رو بدون استفاده از LINQ میشه بدین شکل نوشت (البه برای Label!!!):

foreach (Control control in Controls)
{
Label lbl = control as Label;
if (lbl != null)
{
lbl.Text = "Whatever";
}
}


موفق باشید.