PDA

View Full Version : ایجاد تعداد دکمه ی نامحدود



حميدسي شارپ
دوشنبه 14 مهر 1393, 20:28 عصر
سلام دوستان.
من باید یه برنامه بنویسم که توی اون کاربر چندتا عکس انتخاب کنه و من بیام و با توجه به تعدادی که عکس انتخاب کرده دکمه بسازم.تا اینجاش آسونه.ولی موندم چطور برای این دکمه ها رویداد تعریف کنم؟
اگر در حالت عادی بود، میشد مثلا یه دکمه در زمان run time به فرم افزود و برای اون رخداد تعریف کرد، ولی موضوع اینه که نمیدونم کاربر چندتا عکس ممکنه انتخاب کنه،در نتیجه تعداد دکمه ها رو نمیدونم.حالا چجوری برای این دکمه هایی که نمیدونم چندتان ، رخداد تعریف کنم؟
ممنون

khokhan
دوشنبه 14 مهر 1393, 20:57 عصر
سلام دوستان.
من باید یه برنامه بنویسم که توی اون کاربر چندتا عکس انتخاب کنه و من بیام و با توجه به تعدادی که عکس انتخاب کرده دکمه بسازم.تا اینجاش آسونه.ولی موندم چطور برای این دکمه ها رویداد تعریف کنم؟
اگر در حالت عادی بود، میشد مثلا یه دکمه در زمان run time به فرم افزود و برای اون رخداد تعریف کرد، ولی موضوع اینه که نمیدونم کاربر چندتا عکس ممکنه انتخاب کنه،در نتیجه تعداد دکمه ها رو نمیدونم.حالا چجوری برای این دکمه هایی که نمیدونم چندتان ، رخداد تعریف کنم؟
ممنون
یه کلاس مجزا برای درست کردن دکمه و رویدادش درست کن
بعد از اون کلاس به تعداد عکسها ایجاد کن

http://barnamenevis
دوشنبه 14 مهر 1393, 21:39 عصر
// ساخت button
Button button2 = new Button();
button2 = new System.Windows.Forms.Button();
button2.Location = new System.Drawing.Point(123, 26);
button2.Name = "button2";
button2.Size = new System.Drawing.Size(75, 23);
button2.TabIndex = 2;
button2.Text = "button2";
button2.UseVisualStyleBackColor = true;
this.Controls.Add(button2);

// ایجاد رویداد کلیک
button2.Click += new System.EventHandler(button2_Click);
}
private void button2_Click(object sender, EventArgs e)
{// رویداد در زمان اجرا ایجاد شده
MessageBox.Show("www.computermad.ir");
}

حميدسي شارپ
دوشنبه 14 مهر 1393, 21:49 عصر
http://barnamenevis عزیز خیلی ممنون.
همینطور با تشکر از khokhan (http://barnamenevis.org/member.php?131732-khokhan)
میشه چندتا سؤالمو جواب بدین...
این کدایی که نفهمیدم رو میشه بگین:
این که اومدین و یه شی نیو کردین تو خط اول رو فهمیدم ولی دومی چیه؟
button2 = new System.Windows.Forms.Button();
این tabindex واسه چیه؟
button2.TabIndex = 2;

http://barnamenevis
دوشنبه 14 مهر 1393, 21:59 عصر
خواهش میکنم..

خواستم کامل متوجه بشید وگرنه میشه کد دومو حذف کنی یا به صورت زیر بنویسی



// ساخت button
// Button button2 = new Button();
Button button2 = new System.Windows.Forms.Button();
button2.Location = new System.Drawing.Point(123, 26);
button2.Name = "button2";
button2.Size = new System.Drawing.Size(75, 23);
button2.TabIndex = 2;
button2.Text = "button2";
button2.UseVisualStyleBackColor = true;
this.Controls.Add(button2);

// ایجاد رویداد کلیک
button2.Click += new System.EventHandler(button2_Click);
}
private void button2_Click(object sender, EventArgs e)
{// رویداد در زمان اجرا ایجاد شده
MessageBox.Show("www.computermad.ir");
}


tabindex مشخص میکنه بعد از چند باز فشار دادن دکمه ی tab کنترل فوکس بگیره..

pouria_bayat
سه شنبه 15 مهر 1393, 00:54 صبح
http://barnamenevis عزیز خیلی ممنون.
همینطور با تشکر از khokhan (http://barnamenevis.org/member.php?131732-khokhan)
میشه چندتا سؤالمو جواب بدین...
این کدایی که نفهمیدم رو میشه بگین:
این که اومدین و یه شی نیو کردین تو خط اول رو فهمیدم ولی دومی چیه؟
button2 = new System.Windows.Forms.Button();

این tabindex واسه چیه؟
button2.TabIndex = 2;

برای اینکه بتونی با Tab کیبوردت روی اشیا فرمت جابه جا بشی.

حميدسي شارپ
سه شنبه 15 مهر 1393, 08:08 صبح
ممنون از جواباتون.معذرت می خوام هی تکرار میکنم.آخه مشکل من اینجاست که وقتی می خوام یک دکمه رو اضاف کنم، به راحتی میتونم براش رویداد تعریف کنم.ولی الان تعداد دکمه ها معلوم نیست.یه کد میگذارم اگه میشه ویرایش کنید لطفا

pouria_bayat
سه شنبه 15 مهر 1393, 09:40 صبح
برات ویرایشش کردم.


124307

حميدسي شارپ
چهارشنبه 16 مهر 1393, 17:53 عصر
باز شرمنده که دوباره مزاحم میشم.ببخشید.والا من مبتدی نیستم، تو زمینه ی پایگاه داده و ... زیاد کار کردم ولی این موضوع زیاد نه.
من الان نیاز دارم روی هر کدوم از اون کلیدها که کلیک شد، شمارشو بهم بده.مثلا بعد از اینکه کاربر 10 تا کلید تصادفی تولید کرد، حالا اگه روی کلید شماره ی 3 کلیک کرد، بهش تو یه مسیج باکس عدد 3 رو نشون بدم. خودم هر کاری کردم نشد. دوستان اگه کسی لطف کنه همون galery2 رو که دوستمون ویرایش کرد، دوباره ویرایش کنن.ممنون

meysamsh91
چهارشنبه 16 مهر 1393, 18:24 عصر
سلام
عزیزم کد برنامه شمارو ندیدم.
اما برای اینکار در رویداد کلیک Button که از طریق delegate اشاره شده بهش کد زیر رو بنویس.

Button b = sender as Button;
MessageBox.Show(b.Text);

حميدسي شارپ
چهارشنبه 16 مهر 1393, 18:34 عصر
دوست عزیز من نفهمیدم باید چیکار کنم.چون تا حالا با delegate کار نکردم.کدم رو میگذارم یه نگاه بکنید لطفا ببینید میتونید ویرایشش کنید.ممنون

meysamsh91
چهارشنبه 16 مهر 1393, 18:58 عصر
در این قسمت

private void BtnClick(object sender, EventArgs e)
{
//MessageBox.Show("Click!!!!");
Button b = sender as Button;
MessageBox.Show(b.Text);
}

در ضمن جهت یادآوری delegate قطعه کد زیر هست در پروژه شما

btn[i].Click += new EventHandler(BtnClick);