PDA

View Full Version : سوال: دسترسی به رویدادهای یک user control



na3er-faraji
یک شنبه 11 مهر 1389, 11:59 صبح
سلام. یک یوزر کنترل دارم که توش سه تا تکست باکسه . میخام واسه هر کدوم از این تکست باکس ها یک رویداد keypress بنویسم. مشکلم اینه وقتی رویداد رو مینویسم دیگه به متغیر e دسترسی ندارم. رویدادهای دیگه مثل textchange رو راحت پیاده سازی کردم .اما اینجا مشکل دارم. اینم بگم که نمیخام مستقیم به رویداد ها دسترسی داشته باشم میخام خودم با نام های دلخواه رویداد بنویسم. اینم کدم.


public delegate void _StuffNameKeyPress(object sender, EventArgs e);
public event _StuffNameKeyPress StuffNameKeyPress;

اینم فراخوانیش


private void txtStuffName_KeyPress(object sender, KeyPressEventArgs e)
{
if (this.StuffNameKeyPress != null)
{
StuffNameKeyPress(this, new EventArgs());
}
}

اینم کدی که تو برنامه میزنم


this.buyFactor.StuffNameKeyPress += new UC.Factor._StuffNameKeyPress(buyFactor_StuffNameKe yPress);


void buyFactor_StuffNameKeyPress(object sender, EventArgs e)
{

}

حالا اینجا e میزنم نقطه میزاره به خاصیت هایی مثل handle دسترسی ندارم؟؟؟

Reza_Yarahmadi
یک شنبه 11 مهر 1389, 12:09 عصر
delegate رو بصورت زير تغيير بديد.

public delegate void _StuffNameKeyPress(object sender, KeyPressEventArgs e);
زمان فراخواني هم بصورت زير عمل كنيد

if (this.StuffNameKeyPress != null)
{
StuffNameKeyPress(this, e);
}

شما KeyPress جديد رو با EventArgs كه يك كلاس پايه است پياده سازي كرديد در حالي كه به KeyPressEventArgs نياز داريد.