PDA

View Full Version : ایجاد کنترل و دادن رویداد به آن



S_VB.max
یک شنبه 23 مرداد 1390, 15:00 عصر
سلام
من می خوام وقتی یک آیتم از کمبوباکس کلیک شد یک عکس در زمان اجرا ساخته بشه و رویداد MouseMove را هم به آن اختصاص بده
من کدهای مربوط به اینکار را نوشتم اما وقتی موس را روی عکس ساخته شده حرکت میدم خطا میده



private void pictureBox1_Click(object sender, EventArgs e)
{
PictureBox pic = new PictureBox();
pic.Image = WindowsFormsApplication8.Properties.Resources.Aler t;
pic.MouseMove += delegate { MouseMoveObj(pic, (MouseEventArgs)e); };
this.Controls.Add(pic);

}

void MouseMoveObj(object btn, MouseEventArgs e)
{
MessageBox.Show("Test");
}




لطفا راهنمایی کنید چکار باید بکنم تا این خطا را نده؟
متن خطا :

Unable to cast object of type 'System.EventArgs' to type 'System.Windows.Forms.MouseEventArgs'

morteza271
یک شنبه 23 مرداد 1390, 15:28 عصر
من همین کد شما رو گذاشتم و درست کار کرد!!!
اینطوری بنویسین ببینین درست میشه :
private void pictureBox1_Click(object sender, EventArgs e)
{
PictureBox pic = new PictureBox();
pic.Image = WindowsFormsApplication2.Properties.Resources.Help __1_;
pic.MouseMove += new MouseEventHandler(pic_MouseMove);
this.Controls.Add(pic);
}

private void pic_MouseMove(object sender, MouseEventArgs e)
{
MessageBox.Show("Test");
}

S_VB.max
یک شنبه 23 مرداد 1390, 16:00 عصر
با عرض معذرت دستوراتی را که اون بالا هست را اشتباهی گذاشتم

این کدی هست که من استفاده می کنم و خطا میده :
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
PictureBox pic = new PictureBox();
pic.Image = WindowsFormsApplication9.Properties.Resources.Aler t;
pic.MouseMove += delegate { MouseMoveObj(pic, (MouseEventArgs)e); };
this.Controls.Add(pic);
}

void MouseMoveObj(object btn, MouseEventArgs e)
{
MessageBox.Show("Test");
}
کد من زمانی خطا میده که موس را روی عکس ساخته شده حر کت میدم

من می خوام وقتی روی یکی از آیتمهای کمبوباکس کلیک کردم دستورات ساختن عکس اجرا بشه

S_VB.max
یک شنبه 23 مرداد 1390, 19:39 عصر
کسی نمی دونه باید چکار کنم

morteza271
یک شنبه 23 مرداد 1390, 20:07 عصر
مشکل از کدتون نیست من دقیقا همون کد شما رو می نویسم ولی مشکلی نداره!!!
شما اون کدی که من نوشتم رو امتحان کردین؟نتیجه چی شد؟

Farshid007
یک شنبه 23 مرداد 1390, 20:35 عصر
trooksi جان واسه شما delegate نیست شاید مشکل از همون باشه
S_VB.max جان واسه چی delegate تعریف میکنی؟؟

morteza271
یک شنبه 23 مرداد 1390, 23:49 عصر
trooksi جان واسه شما delegate نیست شاید مشکل از همون باشه
نه دوست عزیز من کد خودشون رو تست کردم و درست بود یعنی با delegate تست کردم و درست بود.
بعد کد خودم رو نوشتم و براشون گذاشتم گفتم شاید درست باشه...
من هر دو روش(کد دوستمون و کدی که خودم گذاشتم) رو تست کردم و درست بود و اصلا خطایی نمیده!!!

S_VB.max
دوشنبه 24 مرداد 1390, 09:35 صبح
نه دوست عزیز من کد خودشون رو تست کردم و درست بود یعنی با delegate تست کردم و درست بود.
بعد کد خودم رو نوشتم و براشون گذاشتم گفتم شاید درست باشه...
من هر دو روش(کد دوستمون و کدی که خودم گذاشتم) رو تست کردم و درست بود و اصلا خطایی نمیده!!!

ممنون دوست عزیز کد شما را امتحان کردم جواب داد ولی با کد خودم خطا میده



S_VB.max جان واسه چی delegate تعریف میکنی؟؟

آخرش من نفهمیدم این delegate برای چی می نویسن؟