nasim bahari
پنج شنبه 17 تیر 1389, 14:09 عصر
User Control
کنترل کاربر بسیار شبیه یک فرم مینیاتوری ویندوز است. که می توان کنترلهای دیگر را روی آن قرار داد و به عنوان یک کنترل مستقل از آن استفاده کرد.
مثال:
برای شروع، فرمان File|New|Project را انتخاب کنید تا پنجره ، پروژه جدید باز شود، در قسمت Template ، آیتم Windows Forms Control Library را انتخاب کرده و نام پروژه را UserControl بگذارید.(برای اضافه کردن کنترل کاربر به یک پروژه موجود می توانید از فرمان Project|Add User Control استفاده کنید)، ok یادت نره..........
کنترل کاربر شبیه یک فرم ویندوز کوچک (در واقع رفتار آن هم بسیار شبیه فرم های ویندوز است) و می توان کنترل های ویندوز را روی آن قرار داد> در این مثال، یک برچسب روی کنترل کاربر قرار می دهیم.
توجه کنید که کنترل های کاربر همانند کنترل ها ی استاندارد می توانند خاصیت، متد و رویداد داشته باشند، در اینجا نشان می دهیم که چگونه می توان این آیتم ها را به یک کنترل کاربر اضافه کرد.
اضافه کردن خاصیت به کنترل کاربر
حال می خواهیم خاصیتی بنام CenterColor به کنترل جدید اضافه کنیم که با آن بتوان رنگ برچسب وسط کنترل را ، ست کرد. ( در واقع این خاصیت را با خاصیت BackColor برچسب نسبت خواهیم داد.) برای این کار پنجره طراح کد کنترل جدید را باز کنید، همانطور که مشاهده می کنید این کنترل از کلاس System.Windows.forms.UserControl مشتق شده است.
خاصیت جدید را می توان با دستور Property پیاده سازی کرد. برای ذخیره کردن مقدار این خاصیت از یک شی Color بنام InternalColor استفاده می کنیم، و با متد های Get و Set بترتیب مقدار آن را خوانده و یا می نویسیم:
Public Class UserControl1
Inherits System.Windows.Forms.UserControl
#Region "Windows Form Designer generated code
Private InternalColor As Color
Property CenterColor() As Color
Get
Return InternalColor
End Get
Set(ByVal ColorValue As Color
InternalColor=ColorValue
Lable1.BacColor=InternalColor
End Set
End Property
End Class
اضافه کردن متد به کنترل کاربر
اضافه کردن متد به همان سادگی اضافه کردن خاصیت است: فقط کافیست کد متد مورد نظر را در کنترل کاربر بنویسیم (اگر بخواهیم متد از خارج کنترل قابل دسترسی باشه ، باید آنرا به صورت Public تعریف کنیم)
در زیر متدی بنام SetText به کنترل UserControl اضافه می کنیم. که با آن می توان متن برچسب وسط کنترل را وارد کرد:
Public Class UserControl1
Inherits System.Windows.Forms.UserControl
#Region "Windows Form Designer generated code
Private InternalColor As Color
Property CenterColor() As Color
Get
Return InternalColor
End Get
Set(ByVal ColorValue As Color
InternalColor=ColorValue
Lable1.BacColor=InternalColor
End Set
End Property
Public Sub SetText(ByVal LableText As String
Lable1.Text=LableText
End Sub
End Class
اضافه کردن رویداد به کنترل کاربر
برای اضافه کردن رویداد جدید به کنترل کاربر از دستور Event ( و متد RaiseEvent ) استفاده می کنیم. در زیر رویداد جدیدی بنام TextChange به کنترل کاربر اضافه می کنیم، که با تغییر کردن متن برچسب وسط کنترل ، رخ خواهد داد ( این رویداد را نباید با روداد TextChanged که جزء رویداد های ذاتی کلاس کنترل کاربر هست، اشتباه بگیرید )
Public Class UserControl1
Inherits System.Windows.Forms.UserControl
#Region "Windows Form Designer generated code
Private InternalColor As Color
Public Event TextChange(ByVal LableText As String
Property CenterColor() As Color
Get
Return InternalColor
End Get
Set(ByVal ColorValue As Color
InternalColor=ColorValue
Lable1.BacColor=InternalColor
End Set
End Property
Public Sub SetText(ByVal LableText As String
Lable1.Text=LableText
RaiseEvent TextChange(LableText
End Sub
End Class
تست کنترل کاربر
حال برای اینکه بتوانید از کنترل جدید استفاده کنید ، ابتدا باید آنرا ( با فرمان Build|Build Solution) به یک فایل Dll کامپایل کرده، و سپس در پروژه مقصد یک ارجاع به آن ایجاد کنید.
اگه باحال بود، تشکر یادتون نره ........... تا دلگرمی واسه ادامه سری اموزش ها باشه ......
راستی سعی می کنم اگه وقت کردم یه مثال هم بزارم.............
کنترل کاربر بسیار شبیه یک فرم مینیاتوری ویندوز است. که می توان کنترلهای دیگر را روی آن قرار داد و به عنوان یک کنترل مستقل از آن استفاده کرد.
مثال:
برای شروع، فرمان File|New|Project را انتخاب کنید تا پنجره ، پروژه جدید باز شود، در قسمت Template ، آیتم Windows Forms Control Library را انتخاب کرده و نام پروژه را UserControl بگذارید.(برای اضافه کردن کنترل کاربر به یک پروژه موجود می توانید از فرمان Project|Add User Control استفاده کنید)، ok یادت نره..........
کنترل کاربر شبیه یک فرم ویندوز کوچک (در واقع رفتار آن هم بسیار شبیه فرم های ویندوز است) و می توان کنترل های ویندوز را روی آن قرار داد> در این مثال، یک برچسب روی کنترل کاربر قرار می دهیم.
توجه کنید که کنترل های کاربر همانند کنترل ها ی استاندارد می توانند خاصیت، متد و رویداد داشته باشند، در اینجا نشان می دهیم که چگونه می توان این آیتم ها را به یک کنترل کاربر اضافه کرد.
اضافه کردن خاصیت به کنترل کاربر
حال می خواهیم خاصیتی بنام CenterColor به کنترل جدید اضافه کنیم که با آن بتوان رنگ برچسب وسط کنترل را ، ست کرد. ( در واقع این خاصیت را با خاصیت BackColor برچسب نسبت خواهیم داد.) برای این کار پنجره طراح کد کنترل جدید را باز کنید، همانطور که مشاهده می کنید این کنترل از کلاس System.Windows.forms.UserControl مشتق شده است.
خاصیت جدید را می توان با دستور Property پیاده سازی کرد. برای ذخیره کردن مقدار این خاصیت از یک شی Color بنام InternalColor استفاده می کنیم، و با متد های Get و Set بترتیب مقدار آن را خوانده و یا می نویسیم:
Public Class UserControl1
Inherits System.Windows.Forms.UserControl
#Region "Windows Form Designer generated code
Private InternalColor As Color
Property CenterColor() As Color
Get
Return InternalColor
End Get
Set(ByVal ColorValue As Color
InternalColor=ColorValue
Lable1.BacColor=InternalColor
End Set
End Property
End Class
اضافه کردن متد به کنترل کاربر
اضافه کردن متد به همان سادگی اضافه کردن خاصیت است: فقط کافیست کد متد مورد نظر را در کنترل کاربر بنویسیم (اگر بخواهیم متد از خارج کنترل قابل دسترسی باشه ، باید آنرا به صورت Public تعریف کنیم)
در زیر متدی بنام SetText به کنترل UserControl اضافه می کنیم. که با آن می توان متن برچسب وسط کنترل را وارد کرد:
Public Class UserControl1
Inherits System.Windows.Forms.UserControl
#Region "Windows Form Designer generated code
Private InternalColor As Color
Property CenterColor() As Color
Get
Return InternalColor
End Get
Set(ByVal ColorValue As Color
InternalColor=ColorValue
Lable1.BacColor=InternalColor
End Set
End Property
Public Sub SetText(ByVal LableText As String
Lable1.Text=LableText
End Sub
End Class
اضافه کردن رویداد به کنترل کاربر
برای اضافه کردن رویداد جدید به کنترل کاربر از دستور Event ( و متد RaiseEvent ) استفاده می کنیم. در زیر رویداد جدیدی بنام TextChange به کنترل کاربر اضافه می کنیم، که با تغییر کردن متن برچسب وسط کنترل ، رخ خواهد داد ( این رویداد را نباید با روداد TextChanged که جزء رویداد های ذاتی کلاس کنترل کاربر هست، اشتباه بگیرید )
Public Class UserControl1
Inherits System.Windows.Forms.UserControl
#Region "Windows Form Designer generated code
Private InternalColor As Color
Public Event TextChange(ByVal LableText As String
Property CenterColor() As Color
Get
Return InternalColor
End Get
Set(ByVal ColorValue As Color
InternalColor=ColorValue
Lable1.BacColor=InternalColor
End Set
End Property
Public Sub SetText(ByVal LableText As String
Lable1.Text=LableText
RaiseEvent TextChange(LableText
End Sub
End Class
تست کنترل کاربر
حال برای اینکه بتوانید از کنترل جدید استفاده کنید ، ابتدا باید آنرا ( با فرمان Build|Build Solution) به یک فایل Dll کامپایل کرده، و سپس در پروژه مقصد یک ارجاع به آن ایجاد کنید.
اگه باحال بود، تشکر یادتون نره ........... تا دلگرمی واسه ادامه سری اموزش ها باشه ......
راستی سعی می کنم اگه وقت کردم یه مثال هم بزارم.............