PDA

View Full Version : نوشتن دستور واسه کنترلی که هنوز ساخته نشده



amirrr3
شنبه 02 اردیبهشت 1391, 16:01 عصر
سلام دوستان
من به مشکلی برخوردم
من یه برنامه نوشتم که حین اینکه برنامه در حال اجراست تعدادی کنترل رو می سازم
حالا مشکل اینجاست که مثلا وقتی یه کنترل باتون حین اجرای برنامه ساخته میشه چطوری می تونم واسش کدنویسی کنم
چون سی شارپ که کف دستشو بو نکرده که من قرار این دکمه رو بسازم
دوستان کمک کنن لطفا. ممنون

رافعی مهدی
شنبه 02 اردیبهشت 1391, 16:59 عصر
سلام
به راحتی میتونید Eventهای دلخواهتون رو به این کنترلها اضافه کنید. مثلاً:

for (int cIndex = 1; cIndex <= 10; cIndex++)
{
Button button = new Button();
button.Name = "button" + cIndex;
button.Text = "Dynamic button #" + cIndex;
button.Size = new Size(120, 25);
button.Anchor = (AnchorStyles)(AnchorStyles.Top | AnchorStyles.Left);
button.Location = new Point(cIndex * button.Width, cIndex * button.Height);
//button. ... = ...

button.Click += (sender, e) =>
{
MessageBox.Show(button.Name + " clicked!");
};

this.Controls.Add(button);
}

amirrr3
شنبه 02 اردیبهشت 1391, 17:19 عصر
ممنون دوست عزیز ولی مثل اینکه من منظورم رو درست نرسوندم
من مثلا تو برنامه یه کنترل باتون می سازم به اسم btn1
حالا که هنوز این کنترل ساخته نشده ولی می خوام یه جایی از برنامه واسش کد بنویسم مثلا btn.enable=true
ولی سی شارپ که هنوز این کنترل رو نساخته . حالا من چطور واسش دستور بنویسم
با این دستور هم امتحان کردم نشد


(Button) panel.controlls["btn1"].enable=true;

رافعی مهدی
شنبه 02 اردیبهشت 1391, 17:46 عصر
این کدی که نوشتی کاملاً درست هست و باید کار کنه. برای اطمینان بیشتر کد رو اینجوری اصلاح کن ببین Exception میده:


if (panel.Controls.Find("button1", false).Length != 0)
{
panel.Controls["button1"].Enabled = false;
}
else
throw new Exception();