PDA

View Full Version : سوال: گذاشتن چند pictureBox روی فرم به صورت آرایه ای



ghrzarei
چهارشنبه 17 تیر 1388, 06:51 صبح
با سلام خدمت اساتید

لطفا بگین چه جوری می شه چند pictureBox را به صورت ارایه ای کنار هم روی یک فرم قرار داد راستش من قبلا با vb6 که کار می کردیم به راحتی چند pictureBox و یا هر ابجکت دیگری را به صورت آرایه کنار هم می گذاشتم و در بعضی مواقع بستگی به نیاز با یک حلقه for با آنها کار می کردم ولی در سی شارپ هر چه گشتم پیدا نکردم لطفا یکی راهنمایی کنه با تشکر فراوان

Open-Source
چهارشنبه 17 تیر 1388, 10:29 صبح
در سی شارپ از آرایه کنترلی خبری نیست شما به را حتی میتونید در زمان اجرا کنترل جدید حتی فرم بسازید



و با حلقه foreach به راحتی روی کنترل ها حرکت کنید.

Sajjad.Aghapour
چهارشنبه 17 تیر 1388, 10:37 صبح
for(i=0;i<10;i++)
{
PictureBox picBox=new PictureBox;
picBox.Location = new Point(x,y);
picBox.Size = new Size(width,height);
this.Controls.Add(picBox);
}

hamid67fathi
پنج شنبه 18 تیر 1388, 21:01 عصر
چطور ميشه ويژگی کنترل های ساخته شده رو بد از ساخت تغيير داد ؟؟
مثلاً يه تابع onclick بهش اختصاص داد ؟

Sajjad.Aghapour
پنج شنبه 18 تیر 1388, 22:31 عصر
for(int i=0;i<10;i++)
{
.
picBox.Name="pic"+i.toString();
pic.Click+=new EventHandler(click);
.
}

private void click(object sender,..)
{
pictureBox p=sender as pictureBox;
switch(p.Name)
{
case "pic1":
..
}
}

برای تغییر خاصیت ها هم می تونی اونها رو توی یه List نگه داری و هرجا لازم شد اونها رو تغییر بدی...

BestFriend
سه شنبه 23 تیر 1388, 20:58 عصر
میشه درباره حلقه foreach یه توضیح بدید و اگه ممکنه یه مثال هم بزارید؟ (مثلا رو 10 تا picturebox حرکت کنیم و مشخصه های اونا رو تغییر بدیم.)

با تشکر فراوان.

HDDSoft2001
سه شنبه 23 تیر 1388, 22:17 عصر
با سلام

حلقه foreach برای حرکت در میان آیتم های یک مجموعه بطور خیلی ساده طراحی شده است.




int[] lstInt = new int[10];

------------------------------------------------------------------
for (int i=0;i != lstInt.Lenght; i++)
Console.Writeln(lstInt[i]);d
------------------------------------------------------------------
foreach (int i in lstInt)
Console.Writeln(i);d




این هم تفاوتش به for معمولی

Open-Source
چهارشنبه 24 تیر 1388, 11:03 صبح
بهترین راه برای بررسی یه آرایه یا شبه آرایه که انتهای آن رو ازش خبر نداریم foreach هستش.
مثلا دسترسی به همه کنترل های فرم(تعدا نامعلوم).

BestFriend
چهارشنبه 24 تیر 1388, 12:34 عصر
ممنون از جوابتون ولی من میخوام با حلقه for روی 10 تا picturebox با نام های p1,p2,p3,.....,p10 حرکت کنم این picturebox ها هیچ اندیسی ندارند. چه طوری میشه با حلقه for یا حلقه های دیگه این هارو پیمایش کرد و مثلا left اونا رو تغییر داد؟

با تشکر فراوان.

ASKaffash
چهارشنبه 24 تیر 1388, 13:03 عصر
سلام
اینطوری :


for (int i = 1; i <= 10; i++)
((PictureBox)(this.Controls["p" + i.ToString()])).Left += 10;

BestFriend
جمعه 26 تیر 1388, 10:42 صبح
از همه شما ممنونم.