PDA

View Full Version : ساخت Component



tahayazdani
سه شنبه 18 بهمن 1390, 10:48 صبح
سلام دوستان
من دارم یه برنامه می نویسم و احتیاتج دارم که یک سری از ابزار ها رو به صورت component بسازم تا یک سری از propertise آنا از داخل component ست بشه
مثلا فرض کنید می خوام برای datagridview یه componnet fk,dsl و propertise ان رو مثل right to left و ... از داخل Component یک بار ست کنم و همیشه از آن استفاده کنم.(چون تنظیمات گرید خیلی زیاده و هر بار اگه بخوام این تنظیمات رو انجام بدم سخته)
می خواستم بدونم نوع پروژه من باید از جنس Class Library باشه یا User Control??
کسی می تونه راهنمایی کنه؟ یا نمونه پروژه کسی داره؟
مرسی

massar
چهارشنبه 19 بهمن 1390, 00:21 صبح
سلام دوست عزیز
نوع پروژه نمیتونه user control باشه، یوزر کنترل فقط یه کلاسه که از کلاس Control ارث برده، نوع پروژه میتونه Class Library باشه (بهتره که لایبراری باشه ولی الزامی نیست).
چیزی که شما میخواید اینه که وقتی مثلا کنترلتون گریده، از گرید ارث ببرید و عملکرد مورد نظرتون برای صفاتی مثل راست به چپو بهش اضافه کنید:

class Mygrid : DataGridView
{
//baraye taghire propertiyaye feli intori amal mikonid:
public override RightToLeft RightToLeft
{
get
{
return base.RightToLeft;
}
set
{
//karayee k vaghti in property taghir kard bayad anjam bedino inja minevisid
base.RightToLeft = value;
}
}

}

Parham.D
پنج شنبه 20 بهمن 1390, 07:53 صبح
سلام دوست عزیز
نوع پروژه نمیتونه user control باشه، یوزر کنترل فقط یه کلاسه که از کلاس Control ارث برده، نوع پروژه میتونه Class Library باشه (بهتره که لایبراری باشه ولی الزامی نیست).
چیزی که شما میخواید اینه که وقتی مثلا کنترلتون گریده، از گرید ارث ببرید و عملکرد مورد نظرتون برای صفاتی مثل راست به چپو بهش اضافه کنید:

class Mygrid : DataGridView
{
//baraye taghire propertiyaye feli intori amal mikonid:
public override RightToLeft RightToLeft
{
get
{
return base.RightToLeft;
}
set
{
//karayee k vaghti in property taghir kard bayad anjam bedino inja minevisid
base.RightToLeft = value;
}
}

}

یک UserControl فقط از کلاس Control به ارث نمیبره، از کلاسهای دیگه هم ارث بری داره. به لینک زیر رجوع کنید.

http://www.dotnettips.info/2009/02/flicker-listview.html

m2_farzan
پنج شنبه 20 بهمن 1390, 14:03 عصر
منم میگم از Class Library استفاده کنید و متد سازنده ی کنترل رو طوری override کنید که بعد از کار های خودش، بیاد کار هایی رو که میخواهید انجام بده.

اصلا کار سخت نیست

alimanam
پنج شنبه 20 بهمن 1390, 19:19 عصر
با سلام

به صورت معمول و رایج هنگامی نوع پروژه رو User Control انتخاب میکنیم که چندین کنترل رو در سینی فرم قرار میدیم که مجموعه این کنترل ها یک UI با قابلیت انجام یک سری عملیات یا نمایش و کنترل قسمتی از برنامه رو به عهده میگیره و نوع دیگر که Class Library هستش میتونه یک کلاس ساده دارای توابع مشخص باشه که هیچگونه اینترفیسی هم نباشه هم میتونه یک کنترل جدید با قابلیتهای منحصر بفرد باشه هم میتونه از یک کنترل ویندوزی ارث برده باشه و که یک سری امکانات جدید به اون کنترل داشته باشه .

موفق باشید./