PDA

View Full Version : فراخوانی یک رویداد



senator_aka
یک شنبه 07 مرداد 1386, 17:58 عصر
سلام دوستان.
لطفا هر کسی بلد هست به این تاپیک زود جواب بده.
من می خواستم یک رویداد را صدا بزنم که هر کاری کردم برنامه اخطار میداد.
من قبلا در vb این طوری می نوشتم که:


call form1_load


اما تو #C هر کاری می کنم ایراد می گیره.

اگر کسی بلد هست لطفا سریع جواب بده که خیلی نیاز دارم.

Alireza_Salehi
یک شنبه 07 مرداد 1386, 18:08 عصر
پارامترهاش رو یادتون رفته !
اینطوری جواب میده:


form1_load(null,null);

mehdi.mousavi
یک شنبه 07 مرداد 1386, 18:11 عصر
سلام.
بهتر هستش که یه تابع دیگه ای بنویسید و بقیه جاها (از جمله در load و ...) اونو call کنید تا اینکه بخواهید event handler مربوط به یک event رو از چند جا فراخوانی کنید.

senator_aka
یک شنبه 07 مرداد 1386, 18:16 عصر
رویداد اصلی این هست :



private void form1_Paint(
object sender, System.Windows.Forms.PaintEventArgs e)



وقتی null می زنم ایراد میگیره.
آخه از e.Graphics استفاده شده است

mehdi.mousavi
یک شنبه 07 مرداد 1386, 19:04 عصر
رویداد اصلی این هست :



private void form1_Paint(
object sender, System.Windows.Forms.PaintEventArgs e)

وقتی null می زنم ایراد میگیره.
آخه از e.Graphics استفاده شده است

سلام.
اگر میخواهید متود OnPaint فراخوانی بشه، جای اینکه Paint Handler رو صدا بزنید، بنویسید Invalidate();

Sajjad1364
دوشنبه 08 مرداد 1386, 17:44 عصر
شما میتوانید این رویداد را Invoke کنید یعنی اینطور بنویسید:


InvokePaint ((Control) this, new PaintEventArgs (CreateGraphics() , ClientRectangle));


این متد رویداد Paint هر شیی را که از شئ Control مشتق میشود را می تواند فراخوانی کند.
پارامتر اول نام شیی که میخواهیم رویداد Paint آن فراخوانی شود و پارامتر دوم یک شئ از نوع PaintEventArgs .
Invoke کردن رویدادها بجای فراخوانی هندلر رویدادها کار مفیدیست .که در صورت انجام دادن آن هندلر رویداد بصورت طبیعی توسط خود CLR فراخوانی میشود ,نه کاربر.