PDA

View Full Version : سوال: ساخت Properties سفارشی در UserControl



alireza_tavakol
دوشنبه 19 مرداد 1388, 01:22 صبح
در یک پروژه ControlLibrary یک UserControl دارم و می خوام یک Propertie به اسم About داشته باشم به شکلی که در مکان ذخیره شدن مقدار این Propertie یک Button باشه که با click شدن رو اون دکمه فرم About برنامه ام نشان داده بشه

* نمی دونم نوع Propertie چی باید باشه ؟

با تشکر از شما دوست پاسخ دهند:لبخندساده:

Sociant
دوشنبه 19 مرداد 1388, 02:34 صبح
یه مقدار خوندن سوالتون واسم سخته! میخواین فرم About داخل این properties ذخیره بشه که وقتی روی دکمه کلیک میشه نمایش داده بشه؟
اگه اینجوریه که نوعش میشه نوع همون فرم About ، یعنی مثلا AboutForm

Armin060
دوشنبه 19 مرداد 1388, 03:19 صبح
دو حالت داره. يا می خوايد كنترلی درست كنيد كه توش يه Button هست و روش نوشته About و زمانی كه روی اين button كليد ميشه فرمی كه كاربر در خصوصيت About كنترل شما مشخص كرده نمايش داده ميشه. كه در اين حالت بايد اين كار رو بكنيد.

Form about;

privatevoid aboutButton_Click(object sender, EventArgs e)
{
about.Show();
}
publicForm About
{
get
{
return about;
}
set
{
about = value;
}
}

يا نه. می خوايد برای كنترلی كه درست كرديد يه About بزاريد. تا همه متوجه بشن كه اين كنترل توسط چه شخصی نوشته شده. خوب در اين حالت به جای استفاده از يك خصوصيت بهتره كه از يك متد استفاده كنيد.

privatevoid aboutButton_Click(object sender, EventArgs e)
{
showAbout();
}
publicvoid showAbout()
{
frmAbout.Show();
}

hozouri
دوشنبه 19 مرداد 1388, 07:34 صبح
دوستان ... منظور این دوستمون اینه که پراپرتی در لیست Property ها مثلاً مثل فونت باشه که وقتی روی اون دکمه در سمت راست پراپرتی کلیک شد یه صفحه ای نمایش داده بشه ...

alireza_tavakol
دوشنبه 19 مرداد 1388, 11:26 صبح
به جای استفاده از يك خصوصيت بهتره كه از يك متد استفاده كنيد.

من تا حالا ندیدم کسی برای نمایش About از متد استفاده کنه ولی در خیلی از OCX دیدم که About رو به عنوان یک خصوصیت داخل پرانتز گذاشتن که دقیقا به عنوان بالا ترین گزینه در پنجره Propertie نمایان باشه.

خیلی متشکر از جناب آقای حضوری که دقیقا منظور بنده را بیان کردن:تشویق:

ولی ای کاش ایشان جواب سوال رو هم مرحمت می فرمودند:لبخندساده:

alireza_tavakol
دوشنبه 19 مرداد 1388, 11:50 صبح
میخواین فرم About داخل این properties ذخیره بشه که وقتی روی دکمه کلیک میشه نمایش داده بشه؟
اگه اینجوریه که نوعش میشه نوع همون فرم About ، یعنی مثلا AboutForm

من با اینکه می دونستم این راه حل ، راه به جایی نمی بره ولی رفتم تست کردم بعد اومدم این پست رو ثبت کردم

با این راه حل پیشنهادی شما کلیه خصوصیت های فرم About به عنوان nested properties در خصوصیت About قرار میگیره ( این یعنی افتضاح البته این قضیه قابل حل شدنه ) حالا شما می تونید بفرمایید من چگونه این فرم رو Show کنم ؟:متفکر:

با تشکر از پاسخ شما چون در خیلی از موارد از گفته ها و نظریه های متعدد ایده ها و راه کار های جدید به وجود می آید:لبخندساده:

Sociant
دوشنبه 19 مرداد 1388, 13:43 عصر
من منظورتون رو اشتباه متوجه شده بودم چون سوالتون رو درست نتونستم بفهمم
راجع به این قضیه ای که میگید هیچ اطلاعی ندارم
خوشحال میشم بفهمم قضیه چیه

Armin060
دوشنبه 19 مرداد 1388, 18:38 عصر
خوب بريد ببينيد ماكروسافت پراپرتی فونت رو چطوری نوشته تا جواب سوالتون رو بگيريد.

alireza_tavakol
سه شنبه 20 مرداد 1388, 01:53 صبح
با تشکر از راهنمایی شما دوست گرامی ولی دقیقا" اولین کاری که کردم همین بود که کلاس font (و یا کلاس های مشابه )رو بررسی کردم ولی به علت بی سوادی اصلا" نتونستم بفهمم کجای کلاس فونت باعث به وجود اومدن پنجره Select font میشه و این کلاس چطوری رابط گرافیکی کاربری GUI رو به وجود می یاره:متفکر:

اگه شما زحمت بکشید و یک نگاه هم شما بکنی شاید مشکل منم حل بشه.

راستی برای اینکه کاملا" ملتفت بشین که دقیقا" منظور من از ایجاد این تاپیک چی بود عرض میکنم ، وقتی یکی از فرم های موجود در هر برنامه ای رو انتخاب کنید در پنجره Properties خصوصیتی وجود داره به اسم (DataBindings) که در این خصوصیت گزینه ای وجود داره با نام (Advanced) جلوی این خصوصیت دکمه ای وجود داره که وقتی این دکمه فشار داده میشه پنجره ای باز میشه ! من دقیقا" می خوام واسه UserControl یک همچین خصوصیتی به وجود بیارم ، با این تفاوت که پنجره ای که باز میشه یکی از فرم های برنامه من باشه:کف:

hozouri
سه شنبه 20 مرداد 1388, 07:39 صبح
ببینید دوست عزیز پراپرتی فونت یه پراپرتی خیلی سفارشی است برای این کار شکا فقط کافیه :



public Font properyName
{
}

استفاده کنی ولی برای نمایش دادن اون دکمه کوچکی که می گی به طور دیگه ای باید عمل کنی من قبلاً توی کد پروژکت یه نمونه دیده بودم ولی منم نمی دونم پی باید جستجو کنی تا مفید واقع بشی ...

Sociant
چهارشنبه 21 مرداد 1388, 00:03 صبح
این آدرس رو تو MSDN واست پیدا کردم که دقیقا همین چیزیه که میخوای،
ms-help://MS.MSDNQTR.v90.en/dv_fxdeveloping/html/e0623e7e-9e0b-4896-8291-1b9b7c07e9c8.htm
البته اگه MSDN رو سیستمت نصبه
اینم عنوانشه که میتونی تو سایت MSDN هم سرچ کنی
User Interface Type Editors

alireza_tavakol
چهارشنبه 21 مرداد 1388, 01:48 صبح
با عرض سلام و تشکر

بله این دقیقا" لینک همان چیزی هستش که من می خواستم

البته هنوز نتوانستم کامل بخونمش و یک نمونه ساده از اون کاری رو که می خوام پیاده سازی کنم واسه همین این پست رو زدم که اگه شما زود تر از من به نتیجه رسیدی نمونه کد هایت رو برام بفرستی

Sociant
چهارشنبه 21 مرداد 1388, 15:11 عصر
دیشب یه مقداریش رو خوندم ببینم همونی هست که میخوای یا نه ولی فعلا تو این زمینه نمیتونم کار کنم
یعنی وقتشو ندارم
شرمنده دوست من