نقل قول: آرایه در آوردن لیبل ها
List<Label> labels = new List<Label>();
foreach (Control c in this.Controls)
{
if (c is Label")
{
labels.Add(c as Label);
}
}
از اینجا به بعد لیبلاتو داخل ارایه داری هر کاری می خوای بکن.
labels[0].Text = "Yechi";
نقل قول: آرایه در آوردن لیبل ها
ممنونم از پاسخت
من خواستم همین رو بری تکست باکس ه انجام بدم که نمیشه
List<TextBox> txtC= new List<TextBox>();
foreach (Control c in this.Controls)
{
if (c is TextBox) { txtC.Add(c as TextBox);
}
نام text box های من
txtC1
txtC2
txtC3
.
.
نقل قول: آرایه در آوردن لیبل ها
نقل قول:
نوشته شده توسط
reza0916
ممنونم از پاسخت
من خواستم همین رو بری تکست باکس ه انجام بدم که نمیشه
List<TextBox> txtC= new List<TextBox>();
foreach (Control c in this.Controls)
{
if (c is TextBox) { txtC.Add(c as TextBox);
}
نام text box های من
txtC1
txtC2
txtC3
.
.
مشکل چیه ککه نشد؟
نقل قول: آرایه در آوردن لیبل ها
دوست عزیز بهتره شما کنترا ها را به صورت استا روی فرم قرار ندی تا در زمان ران تایم پروژتو خوب Handle کنی
منظورم اینه که شما اول از همه سعی کن اشیا را به صورت داینامیک تولید کن روی فرم بعد دیگه فکر نکنم مشکلی داشته باشی
به مثال زیر دقت کن :
private void Form1_Load(object sender, EventArgs e)
{
//making dynamic buttons
Button[] btns = new Button[10];
int btnXPositionOnForm = 10;
int btnYPositionOnForm =10;
for (int i = 0; i < btns.Length; i++)
{
btns[i] = new Button();
btns[i].Text = "btn#: " + i.ToString();
btns[i].Click += new EventHandler(btn_click);
btns[i].Location = new Point(btnXPositionOnForm, btnYPositionOnForm);
btnYPositionOnForm += btns[i].Height + 10;
}
this.Controls.AddRange(btns);
}
private void btn_click(object sender, EventArgs e)
{
// get to know which button is pressed.
Button temp = (Button)sender;
MessageBox.Show(temp.Text);
}
فکر کنم بتونی کد های این مثال را متناسب کار خودت تغییر بدی
در ضمن اگه بخوای کار قبلی ات را انجام بدی می تونی از Generic به این صورت که حرفه ای تر هم است استفاده کنی
foreach (var btn in this.Controls.OfType<TextBox>())
{
btn.Text = "something";
}
مزیتش اینه که کار اضافه انجام نمیدی ، یعنی با دستور IF دیگه شرط نمی کذاری
موفق باشی
نقل قول: آرایه در آوردن لیبل ها
یه سوال :
در کد زیر بوسیله یه buttun1 یه گروه تست باکس تولید میشه حالا چطور میتونم با یه buttun دیگه چیزی ازش دریافت یا وارد کنم
اصلا buttun دومی تست باکس ها رو نمیشناسه . ...
کد من :
private void button1_Click(object sender, EventArgs e)
{
TextBox[] txtC = new TextBox[10];
int txtCX = 80; int txtCY = 180;
for (int i = 1; i < txtC.Length; i++)//////////////
{
txtC[i] = new TextBox();
txtC[i].Location = new Point(txtCX, txtCY);
txtCY += txtC[i].Height + 5;
}
this.Controls.AddRange(txtC);
}
private void button2_Click(object sender, EventArgs e)
{
txtC[2].text = "ok";
}
خط قرمز رنگ ارور میده
نقل قول: آرایه در آوردن لیبل ها
شما باید متغیری که در خط زیر هست رو به صورت سراسری تعریف کنی:
TextBox[] txtC = new TextBox[10];
یعنی این خط رو از داخل رویداد باتون بردار و بذارش زیر: public partial class Form1 : Form
در اون صورت این متغیر در همه جا قابل استفاده است...