PDA

View Full Version : سوال: مشکل با UserControl سفارشی



Hamishebahar
دوشنبه 14 دی 1388, 16:54 عصر
سلام دوستان خسته نباشید.

من توی کنترل خودم مشخصه اضافه کردم که وقتی به فرمم اضافه میکنم و متن رو تغییر میدم مشکلی نداره ولی وقتی برنامه رو Build میگیرم دوباره خالی میشه.لطفاً راهنمایی کنید:


string _Text = "a";
[Browsable(true)]
public override string Text
{
get
{
return _Text;
}
set
{
Lbl_Text.Text = _Text = value;
GetSize();
}
}


یه مشل دیگه هم هست اینکه من نمیتوم مشخصه Size رو override کنم.
ممنون و مموفق باشد.

mehdi.mousavi
دوشنبه 14 دی 1388, 17:30 عصر
سلام دوستان خسته نباشید.
من توی کنترل خودم مشخصه اضافه کردم که وقتی به فرمم اضافه میکنم و متن رو تغییر میدم مشکلی نداره ولی وقتی برنامه رو Build میگیرم دوباره خالی میشه.

سلام.
Property رو بشکل زیر تغییر بدید، ببینید درست میشه یا خیر. در واقع، Attribute زیر رو روی Property اعمال کنید:

[DesignerSerializationVisibility(DesignerSerializat ionVisibility.Visible)]
public override string Text
{
//do whatever
}

موفق باشید.

Hamishebahar
دوشنبه 14 دی 1388, 18:23 عصر
ممنون دوست من مشکلم حل شد فقط جواب سوال دومم رو اگه میشه ممنون:

یه مشکل دیگه هم هست اینکه من نمیتوم مشخصه Size رو override کنم.

ممنون و موفق باشید.

mehdi.mousavi
سه شنبه 15 دی 1388, 11:45 صبح
ممنون دوست من مشکلم حل شد فقط جواب سوال دومم رو اگه میشه ممنون.

خوشحالم که مشکل حل شد. اما سوال دوم... یک Property یا Method فقط وقتی override میشه که توی کلاس base بصورت virtual تعریف شده باشه. از اونجاییکه Size، بصورت virtual تعریف نشده، طبیعی هستش که نتونید override اش کنید.

اگر هدفتون تعیین سایز پیش فرض کنترل هست (چون معمولا برنامه نویسها به این هدف میرن دنبال override کردن Size)، در اینصورت میتونید از DefaultSize Property استفاده کنید. DefaultSize بصورت virtual تعریف شده و فقط get accessor داره، در نتیجه میتونید سایز پیش فرض کنترلتون رو بهش بدید. (البه، اگر هدفتون این باشه).

موفق باشید.