mohsen_csharp
پنج شنبه 27 فروردین 1388, 10:45 صبح
با سلام
من یک کلاس WaterMarkBox نوشتم که از از TextBox به ارث برده شده . من رویدادم رو بدین صورت تعریف کردم
[Browsable(true)]
public event EventHandler<ValueChangedEventArgs<string>> ValueTextChangedEvent;اینم کلاس ValueChangedEventArgs
public class ValueChangedEventArgs<T>:EventArgs
{
public ValueChangedEventArgs(){ }
public bool Cancel { get; set; }
public T OldValue { get; set; }
}حالا این رویداد در قسمت design نمیاد ولی در قسمت کد وجود داره و قابل استفاده است
حتی من در بالای کلاس این رویداد رو به عنوان DefaultEvent تعریف کردم بدین صورت:
[DefaultEvent("ValueTextChangedEvent")]
class WaterMarkBox : TextBox
{حالا وقتی موقع design روی این کنترل دبل کلیک می کنم رویداد مورد نظر رو تولید می کنه ولی به صورت اشتباه:
private void waterMarkBox2_ValueTextChangedEvent(object sender)
{
}که درستش این میشه:
void waterMarkBox2_ValueTextChangedEvent(object sender, mohsen.ValueChangedEventArgs<string> e)
{
}از دوستان کسی هست که بنده رو راهنمایی کنه؟
من یک کلاس WaterMarkBox نوشتم که از از TextBox به ارث برده شده . من رویدادم رو بدین صورت تعریف کردم
[Browsable(true)]
public event EventHandler<ValueChangedEventArgs<string>> ValueTextChangedEvent;اینم کلاس ValueChangedEventArgs
public class ValueChangedEventArgs<T>:EventArgs
{
public ValueChangedEventArgs(){ }
public bool Cancel { get; set; }
public T OldValue { get; set; }
}حالا این رویداد در قسمت design نمیاد ولی در قسمت کد وجود داره و قابل استفاده است
حتی من در بالای کلاس این رویداد رو به عنوان DefaultEvent تعریف کردم بدین صورت:
[DefaultEvent("ValueTextChangedEvent")]
class WaterMarkBox : TextBox
{حالا وقتی موقع design روی این کنترل دبل کلیک می کنم رویداد مورد نظر رو تولید می کنه ولی به صورت اشتباه:
private void waterMarkBox2_ValueTextChangedEvent(object sender)
{
}که درستش این میشه:
void waterMarkBox2_ValueTextChangedEvent(object sender, mohsen.ValueChangedEventArgs<string> e)
{
}از دوستان کسی هست که بنده رو راهنمایی کنه؟