PDA

View Full Version : سوال: e چيست و چه كاربردي دارد؟



gigidagostino
شنبه 28 اردیبهشت 1387, 15:06 عصر
سلام
ميخواستم بدونم كه e چيه و چه كارايي ميتونه انجام بده؟

sinpin
شنبه 28 اردیبهشت 1387, 15:13 عصر
ميخواستم بدونم كه e چيه و چه كارايي ميتونه انجام بده؟

سئوال مبهم است، دقيقتر بپرسيد. آيا منظور شما آبجكت eventArgs موجود در پارامترهاي يك ايونت هندلر است ؟

gigidagostino
شنبه 28 اردیبهشت 1387, 15:17 عصر
ميشه راجع به هر دوتاش هم توضيح بديد؟ممنون ميشم

Mahdi.Kiani
شنبه 28 اردیبهشت 1387, 16:06 عصر
e هیچ چیز نیست !!!
یک متغیر برای دسترسی به یک آبجکت.. مانند نمونه گیری هایی که تا الان انجام میدادید..
اما استاندارد دات نت برای تعریف event ها در Delegate آن ها که معمولا پارامتر دوم آن ، آرگومانی از جنس EventArgs و یا کلاسی مشتق شده از آن می باشد..
***
مثال





public delegate void ChangeEventHandler(object sender, CustomEventArgs e);

public event ChangeEventdhandler DataAdded;




CustomEventArgs کلاسی است که از EventArgs مشتق شده





public class CustomEventARgs : EventArgs
{
// members for class
}





بعضی از لغات یا کلمات برای نمونه گیری از یک سری کلاس خاص استفاده می شوند ( این فقط مرسوم است نه اجبار نه قانون و نه هیچ چیز دیگه)
مثلا موقع تعریف یک Exception در بلاک Catch از ex که نشاند دهنده exception می باشد استفاده می شوئد.



try
{

} catch(Exception ex)
{
//handle exception
}




e هم برای event ها مورد استفاده قرار می گیرید.

hdv212
شنبه 28 اردیبهشت 1387, 17:36 عصر
ميخواستم بدونم كه e چيه و چه كارايي ميتونه انجام بده؟
پارامتر e که معمولا در رویدادها دیده میشه، یک نمونه از کلاس EventArgs یا کلاسهای مشتق شده از اون هست که اطلاعاتی رو راجع به رویدادی که اتفاق افتاده به ما میده.
مثلا در رویداد FormClosing مربوط به یک Form، پارامتر e از نوع کلاسی به نام FormClosingEventArgs است که از System.EventArgs مشتق شده و اطلاعات و قابلیتهایی راجع به رویداد FormClosing به ما ارائه میده، مثلا یکی از این خاصیت ها، Cancel هست که میتونی رویداد مورد نظر رو در زمان وقوع این رویداد Cancel کنی.

mohammed
یک شنبه 29 اردیبهشت 1387, 10:39 صبح
در مورد کلاس EventArgs توضیح می دین

کلاسی که از روش متغیر e مورد بحث ساخته شده است.

gigidagostino
جمعه 11 دی 1388, 20:31 عصر
مثلا در رویداد FormClosing مربوط به یک Form، پارامتر e از نوع کلاسی به نام FormClosingEventArgs است که از System.EventArgs مشتق شده و اطلاعات و قابلیتهایی راجع به رویداد FormClosing به ما ارائه میده، مثلا یکی از این خاصیت ها، Cancel هست که میتونی رویداد مورد نظر رو در زمان وقوع این رویداد Cancel کنی.
ممنون از راهنماییتون.یعنی اینکه هر رویدادی یک e ایجاد میکنه؟یا e ثابته و در رویدادهای مختلف مقدارش عوض میشه؟منظورم اینه که آیا ما در هر برنامه یک e داریم؟یا با هر رویداد یک e مختص اون رویداد ایجاد میشه؟

tefos666
جمعه 11 دی 1388, 20:39 عصر
مثال :

مثلا یکی از کاراش اینه که تو رویداد یک دکمه وقتی e رو صدابزنی کلیدهای صفحه کلید رو میبینید و میتونید از اونها استفاده کنید



private void btn_KeyUp(object sender, KeyEventArgs e)
{

if (e.KeyCode != Keys.controlkey)

{
messagebox.show("کلید کنترل فشرده شد")
}



البته این یه مثال ساده بود ، اساتید توضیحات فنی دادند ، کلا چیزه مفیدیه :)

gigidagostino
جمعه 11 دی 1388, 22:24 عصر
چرا در بعضی رویداد ها e متفاوت با بعضی دیگه است؟من خواستم برای جلوگیری از تغییر سایز با دابل کلیک روی Titlebar فرمم داخل رویداد SizeChanged همین e.cancel یا e.handeled=true رو بنویسم .اما e اونجا این متد یا خاصیت رو نداشت.
اگر فرق این دو هم بگید ممنون میشم.

FastCode
جمعه 11 دی 1388, 23:51 عصر
لطفا" در مورد Delegate تحقیق کنید.
10 صفحه که بخونی هیچی نمی فهمی.
4 صفحه دیگه بخونی یه چیزایی می فهمی.
بعد از این هرچقدر بیشتر بخونی بیشتر میفهمی.
از اینجا شروع کن:
http://en.wikipedia.org/wiki/Delegate_(.NET) (http://en.wikipedia.org/wiki/Delegate_(.NET))

http://msdn.microsoft.com/en-us/library/system.delegate.aspx (http://msdn.microsoft.com/en-us/library/system.delegate.aspx)