PDA

View Full Version : #c تغییر خصوصیت یک دکمه در فرم



mahdi_mbi
شنبه 01 دی 1386, 10:10 صبح
من با استفاده از for تعدادی button درست کردم و میخوام بعدا خصوصیت text دکمه پنجم رو تغییر بدم. چیکار کنم؟
یا مثلا بگید چه جوری میشه یه آرایه پویا (با ArrayList) از button ها درست کرد و بعدا خصوصیات یک دکمه خاص رو تغییر داد.
ممنون

hassan razavi
شنبه 01 دی 1386, 10:14 صبح
می تونید از Controls.Find استفاده کنید و آرایه ای از Controls رو بدست بیاورید.

sinpin
شنبه 01 دی 1386, 10:53 صبح
من با استفاده از for تعدادی button درست کردم و میخوام بعدا خصوصیت text دکمه پنجم رو تغییر بدم. چیکار کنم؟
یا مثلا بگید چه جوری میشه یه آرایه پویا (با ArrayList) از button ها درست کرد و بعدا خصوصیات یک دکمه خاص رو تغییر داد.
ممنون

به جای ArrayList از لیست های ژنریک استفاده کنید بهتره :


List<Button> buttons = new List<Button>();
for (int i = 0 ; i < 10 ; i++)
buttons.Add(new Button());
int top = 10;
foreach(Button btn in buttons)
{
btn.Text = "";
top += 40;
btn.Location = new System.Drawing.Point(20, top);
}
buttons[5].Text = "Salam";

ممکنه خطای سینتکسی داشته باشه چون دسترسی به IDE نداشتم

mahdi_mbi
شنبه 01 دی 1386, 17:08 عصر
همتون ایول دارید:تشویق:

mahdi_mbi
شنبه 01 دی 1386, 18:51 عصر
به یه مشکل خوردم. از خط اول سه تا ایراد می گیره:


a new expression requires () or [] after type
invalid expression term ')'
) expected

فکر کنم اگه namespace زیر رو اضافه کنم درست میشه ولی مشکل اینجاست که پیغام میده که این namespace وجود نداره.


using System.Collections.Generic;


چیکار کنم؟

اَرژنگ
شنبه 01 دی 1386, 18:56 عصر
List<Button> buttons = new List<Button>();

از این خط سه تا ایراد می گیره:
A new expression requires () or [] after type
Invalid expression term ')'
) expected

فکر کنم اگه namespace زیر رو اضافه کنم درست می شه ولی مشکل اینجاست که پیغام میده که این namespace وجود نداره!
using System.Collections.Generic;


چیکار کنم؟ هم اکنون نیازمند یاری سبزتان هستیم.


از دات نت ۱.۱ استفاده میکنید؟

mahdi_mbi
شنبه 01 دی 1386, 19:02 عصر
از دات نت ۱.۱ استفاده میکنید؟

بله:لبخندساده:

اَرژنگ
شنبه 01 دی 1386, 19:09 عصر
بله:لبخندساده:
پس مجبورید که از آرایه استفاده کنید.
چرا از دات نت ۳.۵ استفاده نمیکنید؟ دات نت ۱.۱ دیگه خیلی قدیمی شده،

mahdi_mbi
شنبه 01 دی 1386, 19:13 عصر
پس مجبورید که از آرایه استفاده کنید.
چرا از دات نت ۳.۵ استفاده نمیکنید؟ دات نت ۱.۱ دیگه خیلی قدیمی شده،

فکر نمی کردم اینقدر قدیمی باشه:متفکر:. حالا اگه خواسته باشم از آرایه استفاده کنم باید چیکار کنم؟(می تونم یه آرایه از دکمه بسازم ولی نمی تونم به یه اندیس خاص و خصوصیاتش دست پیدا کنم)

اَرژنگ
شنبه 01 دی 1386, 19:18 عصر
فکر نمی کردم اینقدر قدیمی باشه:متفکر:. حالا اگه خواسته باشم از آرایه استفاده کنم باید چیکار کنم؟(می تونم یه آرایه از دکمه بسازم ولی نمی تونم به یه اندیس خاص و خصوصیاتش دست پیدا کنم)
کدی را که استفاده میکنید بفرستید.

mahdi_mbi
شنبه 01 دی 1386, 19:29 عصر
کدی را که استفاده میکنید بفرستید.



ArrayList buttonArray=new ArrayList();
for(int i=0;i<tableWidth;i++)
for(int j=0;j<tableHeight;j++)
{
Button b=new Button();
buttonArray.Add(b);
b.Click += new EventHandler(leftClick);
b.Name=Convert.ToString("btn"+i+j);
b.Location=new Point(cellSize*i,cellSize*j+30);
b.Width=cellSize;
b.Height=cellSize;
this.pnlPanel.Controls.Add(b);
}


راستش دارم بازی مین روب رو می نویسم.

hassan razavi
شنبه 01 دی 1386, 19:39 عصر
شما که به نام کنترل هاتون اندیس داده اید به راحتی می تونید بر اساس اسمشون اونهل رو Find کنید. یه نمونه برنامه قبلا گذاشتم در لینک زیر گذاشتم :

http://barnamenevis.org/forum/showthread.php?t=83004&highlight=Controls.Find

mahdi_mbi
شنبه 01 دی 1386, 19:43 عصر
شما که به نام کنترل هاتون اندیس داده اید به راحتی می تونید بر اساس اسمشون اونهل رو Find کنید. یه نمونه برنامه قبلا گذاشتم در لینک زیر گذاشتم :

http://barnamenevis.org/forum/showthread.php?t=83004&highlight=Controls.Find

ممنون. امتحان می کنم نتیجه رو میگم.

mahdi_mbi
شنبه 01 دی 1386, 20:49 عصر
از همگی ممنون! مساله حل شد.بازم ممنون.:قلب:

rohullah
یک شنبه 02 دی 1386, 17:20 عصر
احتمالا شما کل تعریف و ساخت کنترل رو داخل یه بلوک مثلا همین for انجام نمی دید؟؟؟؟

rohullah
یک شنبه 02 دی 1386, 17:21 عصر
میشه بگی چیکار کردی و مشکل از کجا بود شاید یه روزی بدرد ماهم خورد.