PDA

View Full Version : آرایه ای از پنل ها



bahar_engineer
یک شنبه 30 فروردین 1388, 12:54 عصر
شاید مسخره به نظر بیاد اما نمی دونم چطور آرایه ای از پنل ها تعریف کنم...



private panel[] panel = new panel[9] ;


اینطوری می شه اما می خوام panel1 تا panel9 بهش مقدار اولیه بدم

چکار کنم؟؟؟

اینطوری هم خطا می گیره :


private panel[] panel = new panel[9] { panel1, panel2, panel3, panel4, panel5, 6panel, panel7, panel8, panel9 };

hsmfaridmehr
یک شنبه 30 فروردین 1388, 13:28 عصر
ی ارایه از Object بساز

bahar_engineer
یک شنبه 30 فروردین 1388, 13:34 عصر
ممکنه بیشتر توضیح بدین ؟؟

چطور بسازم و چطور به پنل نسبتش بدم ؟؟؟

توی نت پیدا کردم به این شکل اما نمی تونم ازش استفاده کنم...



تعریف : private Panel[] panel = new Panel[4];
استفاده : panel[i] = new Panel();


می خوام بتونم مکان پنل ها رو بدست بیارم

tempx=panel[i].location.x;

یه اینطور چیزی اما نمی شه ... خطا نداره اما عمل هم نمی کنه

NewFoxStudent
یک شنبه 30 فروردین 1388, 13:49 عصر
Panel[] p = new Panel[9];
int index = 0;
foreach (Panel pp in p)
{
pp = new Panel();
pp.Name = "Panel" + index.ToString();
index += 1;
}

bahar_engineer
یک شنبه 30 فروردین 1388, 14:04 عصر
از این خطش ایراد می گیره



pp = new Panel();


خطا اینه :
cannot assign to 'pp' because it is a foreach iteration variable

مشکل از کجاست؟؟ من این کد رو در قسمت panel_mousedown قرار دادم چون می خوام location پنل رو بدست بیارم

hsmfaridmehr
یک شنبه 30 فروردین 1388, 14:07 عصر
خوب این کار رو بکن بهتره



public partial classForm1 : Form
{
List<Panel> panels = newList<Panel>();

public Form1()
{
InitializeComponent();
SetPanel();
}
private void SetPanel()
{
foreach (Control c inthis.Controls)
{
if (c isPanel)
{
panels.Add((Panel)c);
}
}
}
private void button1_Click(object sender, EventArgs e)
{
Panel p = panels[0];
textBox1.Text = p.Location.X.ToString();
}
}

bahar_engineer
یک شنبه 30 فروردین 1388, 14:20 عصر
ممنون درست شد اما
در خط


Panel p = panels[0];


پنل اول مورد نظره درسته !! حالا اندیسش چی می شه ؟ i بذارم به جای صفر؟؟
حلقه معمولی می تونم بدم ؟؟

bahar_engineer
یک شنبه 30 فروردین 1388, 14:32 عصر
اصلاً من هر موقع حلقه می دم توی سی شارپ خطا می گیره و درست اجرا نمی شه

مگه اینطوری نباید حلقه بدم ؟؟



for(int i=0;i<10;i++)
{
دستورات
}


آیا این حلقه مشکلی داره ؟ چون اصلاً i و تغییرات اون اعمال نمی شه

bahar_engineer
یک شنبه 30 فروردین 1388, 14:51 عصر
یه سوال دیگه

اگه بخوام موقعیت (مکان) پنلی رو که موس اون رو انتخاب کرده (برای درگ کردن) باید توی رویداد panel_mousedown کد بذارم ؟؟

و چطور بنویسم که panel[i] رو موقعیتشو برام چاپ کنه در این رویداد؟؟؟ یعنی ماوس پنل i رو برای درگ کردن انتخاب کرده ... چطور می تونم بفهمم الان i چنده که ماوس اونو انتخاب کرده ؟

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

NewFoxStudent
دوشنبه 31 فروردین 1388, 09:28 صبح
اگه نام پنلها به ترتیب شماره اونهاست مثلا Panel1,Panel2,...
از روی نام پنلی که انتخاب شده میتونی بفهمی

bahar_engineer
دوشنبه 31 فروردین 1388, 14:27 عصر
ممکنه یه نمونه کد بدین ؟؟ حسابی توش گیر کردم !

13601360
دوشنبه 31 فروردین 1388, 14:49 عصر
اگر این جواب بی ربط بود شرمنده :
یه متغییر سراسری تعریف کن و تو رویداد mousedown هر یک از پنل ها مقدار اون مغییر رو برابر شماره همون پنل قرار بده

bahar_engineer
سه شنبه 01 اردیبهشت 1388, 12:01 عصر
اگر این جواب بی ربط بود شرمنده :
یه متغییر سراسری تعریف کن و تو رویداد mousedown هر یک از پنل ها مقدار اون مغییر رو برابر شماره همون پنل قرار بده

راه حلتون عالی بود ... کلاً پنل ها که درست شد پازل هم درست شد...:تشویق:

خیلی کمکم کردین

یه دنیا ممنون :لبخندساده: