PDA

View Full Version : تشخیص ایندکس NumericUpDown



saber67
شنبه 05 بهمن 1392, 17:54 عصر
من توی برنامم چند تا NumericUpDown رو به صورت پویا باید ایجاد کنم. تعداد هم مشخص نیست، ممکنه یکی باشه ممکنه 100 تا یا بیشتر
این جوری کدش رو نوشتم
protected internal List<NumericUpDown> nupAmount = new List<NumericUpDown>();
تابع ایجاد NumericUpDown جدید:
private void NUDAmountDraw()
{
NumericUpDown nud = new NumericUpDown();
nud.Size = new Size(60, 23);
nud.Value = 1;
.
.
.
nud.ValueChanged += new EventHandler(nupAmount_ValueChanged);
nupAmount.Add(nud);
this.Controls.AddRange(nupAmount.ToArray());
}

ور در نهایت تابع ValueChanged:
private void nupGoodAmount_ValueChanged(object sender, EventArgs e)
{
NumericUpDown nud = sender as NumericUpDown;
}

همون طور که متوجه شدید تابع یه NumericUpDown رو می سازه و تابع nupGoodAmount_ValueChanged رو به رخداد ValueChanged نسبت میده
اما من می خوام توی تابع ValueChanged بدونم مقدار کدوم یکی از NumericUpDown ها عوض شده؟؟
یعنی ایندکسش یا یه چیزی تو این مایه ها رو بتونم بدست بیارم

البته میشه موقع ساخت NumericUpDown واسه هر کدوم اسم جداگانه گذاشت و بعد از روی اون فهمید اما می خوام بدونم راه بهتری هم هست؟؟

fmehrvarzi
شنبه 05 بهمن 1392, 20:37 عصر
از این کد داخل valuechange استفاده کنید
NumericUpDown nud=sender as NumericUpDown ;
// You can access the NumericUpDown props... that has been invoked!
از طریق نامش
nud.Name

saber67
شنبه 05 بهمن 1392, 20:54 عصر
از این کد داخل valuechange استفاده کنید
NumericUpDown nud=sender as NumericUpDown ;
// You can access the NumericUpDown props... that has been invoked!
از طریق نامش
nud.Name

ممنون دوست عزیز، اما اینو که خودم گفتم!
می خوام بدونم راه بهتری نیست؟

Mahmoud.Afrad
پنج شنبه 10 بهمن 1392, 18:14 عصر
اندیس رو برای چی میخواهید؟


private void nupGoodAmount_ValueChanged(object sender, EventArgs e)
{
NumericUpDown nud = sender as NumericUpDown;
int index = nupAmount.IndexOf(nud);
//...
}