نوشته شده توسط
مجتبی تاجیک
به وسیله خصیصه ActiveControl شی Container تون .
this.ActiveControl
بررسی میکنید که شی انتخاب شده دکمه هست یا نه و ادامه کار ...
پیشنهاد من اینه که توی حلقه ای که دکمه های دینامیک ایجاد می شن رویداد کلیک برای هر دکمه هم تعریف بشه
و برای اینکه دکمه انتخابی موقع تغییر مقدار numberupdown مشخص بشه از تگ کنترل کمک بگیرین و البته یه متغییر از نوع int هم بایستی داشته باشین تا مقدار تگ ها رو براتون نگه داری کنه
private int ctrID = 0;
private void createButton()
{
for (int i = 0; i < 5; i++)
{
Button btn = new Button();
btn.Tag = i;
btn.Location = new Point( i, i);
btn.Text = "btn"+i;
btn.Click += (sender, e) =>
{
ctrID = -1;
numericUpDown1.Value = 0;
numericUpDown1.Enabled = true;
ctrID =(int)btn.Tag;
};
panel1.Controls.Add(btn);
}
}
برای دکمه Esc روی فرم مربوطه ابتدا خاصیت KeyPreview رو در پراپرتی فرم true کنید
و بعد در رویدادKeyPress بنویسن:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)27)
{
numericUpDown1.Value = 0;
}
}
نمونه رو ضمیمه کردم تا متوجه منظورم بشین