بنده نام پروژه ي كامپوننت خود را MyCntrl قرار مي دهم. اين كنترل وظيفه دارد نام درايو هاي روي رايانه را به كاربر نشان دهد. در ادامه اسم فرم اصلي را از UserControl1.vb به MyDrive.vb تغيير مي دهم.
زير مجموعه System.IO را با دستور Imports System.IO وارد مي كنم.
من روي فرم MyDrive يك جعبه ليستي با نام ListBox1 را قرار مي دهم. اكنون كد نويسي آغاز مي شود:
تعريف متغير DriveCount:
اين متغير تعداد درايو هاي شناسايي شده را در خود ذخيره مي كند. چون قصد داريم اين متغير را در اختيار كاربر بگذاريم، تعريف با Public صورت مي گيرد:
Public DriveCount As Integer
تعريف رويداد DriveUpdate:
اين رويداد زماني رخ مي دهد كه ليست درايو ها آپديت شود. چون قصد داريم اين متغير را در اختيار كاربر بگذاريم، تعريف با Public صورت مي گيرد:
Public Event DriveUpdate()
تعريف متد Mailer:
اين متد يك ايميل را با عنوان Subject براي آدرس مشخصي مي فرستد. بنده از اين متد زماني استفاده مي كنم كه در كامپوننت خطايي رخ دهد. در صورت بروز خطا در كنترل، Mailer اجرا مي شود و متن خطا را به ايميل برنامه نويس مي فرستد. لزومي ندارد كه Mailer در اختيار كاربر نهايي باشد درنتيجه تعريف با Private صورت مي گيرد. توجه داشته باشيد كه Subject پارامتر متد محسوب مي شود:کد:Private Sub Mailer(ByVal Subject As String)Process.Start("mailto:address@domain.com?Subject=Error: " + Subject)End Subتعريف متد Updator:
اين متد نام درايو ها را درون جعبه ليستي قرار مي دهد (به عبارت ديگر ليست درايو ها را در جعبه آپديت مي كند). چون كاربر نيز به اين متد نيازمند است از Public استفاده مي كنم:
کد:Public Sub Updator() Try تعداد درايو ها در متغير DriveCount ذخيره مي شود' DriveCount = DriveInfo.GetDrives.Length ListBox1.Items.Clear() نام درايو ها در جعبه ي ليستي وارد مي شود' For iDrive As Integer = 0 To DriveCount - 1ListBox1.Items.Add(DriveInfo.GetDrives(iDrive).Name)Next رويداد DriveUpdate رخ مي دهد' RaiseEvent DriveUpdate()Catch ex As Exception در صورت بروز خطا Mailer اجرا مي شود و پيام خطا را با عنوان Subject ارسال مي كند'Mailer(ex.Message)End TryEnd Sub
تعريف خاصيت BGColorBox:
اين خاصيت رنگ پس زمينه ي جعبه ي ليستي را بر مي گرداند و يا ست مي كند:
کد:Property BGColorBox() As ColorGet Return ListBox1.BackColorEnd Get Set(ByVal BGColor As Color)ListBox1.BackColor = BGColorEnd Set End Property
تعريف خاصيت FColorBox:
اين خاصيت رنگ متن جعبه ي ليستي را بر مي گرداند و يا ست مي كند:کد:Property FColorBox() As ColorGet Return ListBox1.ForeColorEnd Get Set(ByVal FColor As Color)ListBox1.ForeColor = FColorEnd Set End Propert
هر دو خاصيت مذكور در قسمت Properties كنترل قابل مشاهده هستند.
در نهايت در رويداد FormLoad متد Updator را قرار مي دهيم تا با بارگذاري فرم، درايو ها در ListBox ديده شوند.
اكنون كامپوننت را كامپايل مي كنيم...






پاسخ با نقل قول
Bookmarks