PDA

View Full Version : سوال: مشکل با Event در کنترل سفارشی



vb develop
جمعه 13 شهریور 1388, 22:40 عصر
با سلام خدمت همه دوستان و اساتید محترم.

من یک کنترل سفارشی ایجاد کردم که چیز خاصی نداره

فقط روی فرم، یک PictureBox قرار دادم و البته PictureBox رو Full Dock کردم، یهنی کل سطح فرم رو میخوام پوشش بده.

اما مشکل بنده :

وقتی میخوام از این کنترل توی Win Form ها استفاده کنم، رویداد هایی که صدا زده میشه رویداد های PictureBox هست نه رویداد خود Custom Control
مثلا وقتی برای رویداد Click کنترل سفارشیم کدی رو تنظیم میکنم، اصلا اون رویداد انجام نمیشه

چون وقتی دارم کلیک میکنم روی PictureBox کلیک کردم نه روی فرم کنترل سفارشی .چون کل سطح فرم رو PictureBox پر کرده. و زمانی که من دارم از کنترل سفارشیم توی فرم های ویندوزی استفاده میکنم،به رویداد های PictureBox دسترسی ندارم و به همین دلیل کاری نمی تونم بکنم.

میخواستم بدونم چطور باید موقع طراحی این کنترل، رویداد های PictureBox رو به رویداد های فرم کنترل سفارشی Divert کنم؟

vb develop
شنبه 14 شهریور 1388, 02:17 صبح
لطفا راهنمایی کنید،چون بسیار مهمه

vb develop
شنبه 14 شهریور 1388, 09:27 صبح
یعنی بین اعضای این تالار،نیست کسی که راه حل این مشکل رو بدونه؟!!!!

اگر میدونستم دقیقا دنبال چه چیز باید بگردم،مطمئنا یه گوگلینگ انجام میدادم.

vb develop
شنبه 14 شهریور 1388, 11:59 صبح
لطفا یک نفر راهنمایی کنه

rostamkhani
شنبه 14 شهریور 1388, 17:32 عصر
سلام دوست عزیز
شما میتونی به روشهای مختلف مشکلت رو حل کنی
مثلا میتونی یک رویداد واسه خودت بسازی و در فرمت اونو استفاده کنی و در رویداد کلیک picturebox اونو فراخوانی کنی .



public partial class UserControl1 : UserControl
{
public delegate void MyClick(object sender, EventArgs e);
public event MyClick myClick;
public UserControl1()
{
InitializeComponent();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
MyClick mk = myClick;
if (mk != null) mk(sender, e);
}
}



و در فرم



public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
userControl11.myClick += new UserControl1.MyClick(userControl11_myClick);
}
void userControl11_myClick(object sender, EventArgs e)
{
MessageBox.Show("ok");
}
}