قواعد نام گذاري کنترل ها
براي اينکه کنترل ها را در ويژوال بيسيک نام گذاري کنيد بايد از يک سري قوانين پيروي کنيد تا شناسايي نوع کنترل براي شما راحت تر باشد، که البته رعايت اين قوانين اختياری است. به عنوان مثال براي نام گذاري دکمه Save بايد نام کنترل را cmdSave بگذاريد که cmd مخفف CommandButton است و Save هم معرف عملکرد اين دکمه يعنی ذخيره کردن است. در زير نام تمام کنترل هاي استاندارد ويژوال بيسيک به طور اختصار آمده است.
|
Control type
|
Prefix
|
Example
|
|
Combo box, drop-down list box
|
Cbo
|
cboEnglish
|
|
Command button
|
Cmd
|
cmdExit
|
|
Common dialog
|
Dlg
|
dlgFileOpen
|
|
Form
|
Frm
|
frmEntry
|
|
Frame
|
Fra
|
fraLanguage
|
|
Image
|
Img
|
imgIcon
|
|
Image combo
|
imgcbo
|
imgcboProduct
|
|
ImageList
|
Ils
|
ilsAllIcons
|
|
Label
|
Lbl
|
lblHelpMessage
|
|
Line
|
Lin
|
linVertical
|
|
List box
|
Lst
|
lstPolicyCodes
|
|
ListView
|
Lvw
|
lvwHeadings
|
|
Menu
|
Mnu
|
mnuFileOpen
|
|
Picture box
|
Pic
|
picVGA
|
|
Option button
|
Opt
|
optGender
|
|
RichTextBox
|
Rtf
|
rtfReport
|
|
Shape
|
Shp
|
shpCircle
|
|
Text box
|
Txt
|
txtLastName
|
|
Timer
|
Tmr
|
tmrAlarm
|
|
Toolbar
|
Tlb
|
tlbActions
|
|
Vertical scroll bar
|
Vsb
|
vsbRate
|
شما هم سعي کنيد از اين قوانين که پيشنهادMicrosoft است پيروي کنيد تا براي دسترسي سريع تر به کنترل هاي برنامه به مشکلي بر نخوريد.
رويدادها
رويداد در برنامه نويسي دقيقا همان چيزي است که در دنياي واقعي با آن سر و کار داريم به عنوان مثال شما يک دکمه را کليک ميکنيد رويداد کليک اتفاق مي افتد يا يک فرم که اجرا ميشود رويداد Load اجرا ميشود در Visual Basic برای هر کنترل رويداد هاي فراواني وجود دارد که ما به عنوان مثال در زير به معرفي آن دسته از رويداد هاي فرم که کاربرد بيشتري دارد ميپردازيم:
Click زماني اتفاق مي افتد که کاربر بر روي فرم يک کليک کند.
DblClick وقتي کاربر دوبار بر روي فرم کليک کند
Load زماني که فرم اجرا ميشود اين رويداد اتفاق مي افتد
Resize زماني که اندازه فرم تغيير پيدا کند اين رويداد اجرا ميشود
Unload زماني که برنامه بسته ميشود اين رويداد اتفاق مي افتد
و رويدادهای ديگری هم هستند که شما در طول يادگيري اين کتاب با اکثر آنها آشنا خواهيد شد.
معرفي کنترل هاي ويژوال بيسيک
همانطور که گفتيم براي اينکه شما يک برنامه را طراحي کنيد بايد از کنترل هاي Visual Basic استفاده کنيد در اين قسمت ميخواهيم شما را به طور مختصر با خواص و کار اين کنترل ها را آشنا کنيم.
کنترل دکمه فرمان(Command Button)
از اين کنترل براي فرمان دادن به برنامه براي انجام کار خاص استفاده می شود. به عنوان مثال ما ميخواهيم در روي فرم يک دکمه وجود داشته باشد که زماني بر روي آن کليک کرديم به ما يک پيغام بدهد. از جعبه ابزار (ToolBox) روي کنترل Command Button دوبار کليک کنيد تا يک دکمه روی فرم اضافه شود

حالا آماده ايم که يک خط کد براي رويداد Click اين دکمه بنويسيم. روي دکمه دوبار کليک کنيد تا صفحه نوشتن کد نمايش داده شود

اين صفحه همان صفحه اي است که قرار است در آن کد مورد نظر را بنويسيم. قبل از نوشتن کد در اين پنجره بايد شما با دو گزينه جديد در اين پنجره آشنا شويد. يکي ComboBoxاشيا و ديگري ComboBox رويداد ها. همانطور که در شکل مي بينيددر کادری که باز شده است تمام اشياء مربوط به فرم جاری در آن ديده می شود. به عنوان مثال شي 1Command . و کادر سمت راستي هم رويداد هاي مربوط به آن شي است. مثلا رويداد Click براي فرم يا براي دکمه فرمان(1Command)

بعد از اينکه به طور مختصر با محيط کد نويسي آشنا شديد با هم کد مربوط به دکمه نمايش پيغام را مي نويسيم.
()Private Sub Command1_Click
"MsgBox "HelloWorld
End Sub
دقت کنيد که عبارات Private Sub Command1_Click و End Sub لازم نيست نوشته شود اين کار را خود Visual Basic انجام ميدهد شما فقط عبارت داخلي را بنويسيد. حالا از روي کيبورد دکمه F5 را فشار دهيد تا برنامه اجرا شود بعد از اينکه برنامه اجرا شد روي دکمه اي که نوشته شده Command1 کليک کنيد چه اتفاقي افتاد! بله يک پنجره کوچک نمايش داده شد که روي آن نوشته شده: HelloWorld

حالا روي دکمه Ok کليک کنيد تا اين پنجره بسته شود بعد از بسته شدن اين پنجره، پنجره اصلي برنامه را هم ببنديد تا به محيط Visual Basic برگرديد.
عبارت MsgBox براي نمايش پيغام به کاربر استفاده ميشود که در ادامه اين کتاب بيشتر درباره اين تابع صحبت ميکنيم.
حالا ما ميخواهيم عنوان(Caption) دکمه را تغيير دهيم پس بايد از پنجره خواص کمک بگيريم.دکمه را انتخاب کنيد (روي دکمه کليک کنيد)ودر پنجره خواص، خاصيت Caption را پيدا کنيد و از Command1 به MessageBox تغيير دهيد.

حالا اگر به اين پنجره که پنجره خواص(properties windows ) نام دارد نگاهي بياندازيد خاصيت هاي هر کنترل که انتخاب شده را در آن مي بينيد که تعدادی از آنها را معرفي ميکنيم.
- خاصيت Name که براي نامگذاري کنترل CommandButton به کار ميرود(البته اين خاصيت براي تمام کنترل ها يکسان ميباشد و دقت کنيد که اين نام نبايد تکراري باشد)
- خاصيت Enabled براي اينکه مشخص کنيم که کنترل فعال باشد يا غير فعال.
- خاصيت Font براي تغيير نوع و اندازه فونت است.
- خاصيت Picture براي نمايش تصوير بر روي کنترل است.
- خاصيت Caption براي نمايش عنوان بر روي دکمه است.
- خاصيت Visible براي نمايش يا عدم نمايش کنترل است.
- خاصيت Height و Width براي اندازه کنترل است.
- خاصيت Left و Top براي موقعيت کنترل بر روي فرم است.
- خاصيت BackColor براي تغيير رنگ زمينه کنترل است.
- خاصيت ForeColor براي تغيير رنگ داخل کنترل است.
و ديگر خواص که با همه آنها به مرور زمان آشنا ميشويد.
کنترل برچسب(Label)
کار اين کنترل نمايش متن مورد نظر بدون اينکه کاربر بتواند محتويات آن را تغيير دهد است.
کنترل جعبه متن(TextBox)
اگر خواستيد از کاربر اطلاعات بگيريد از اين کنترل استفاده کنيد.
مهمترين خواص اين کنترل:
-Alignment : نوع چيدمان متن را مشخص ميکند که به صورت چپ چين ، راست چين و يا در مرکز جعبه متن باشد.
-MaxLength : حداکثر متني که کاربر ميتواند در کنترل وارد کند.
-PasswordChar : براي گرفتن اطلاعاتي مانند کلمه عبور استفاده ميشود. شما فقط يک کاراکتر در اين خاصيت تايپ مي کنيد. به اين ترتيب هر کاراکتري که کاربر هنگام اجرا در جعبه متن وارد مي کند به شکل کاراکتری که در اين خاصيت تايپ کرده ايد نمايش داده می شود. مثلا اگر کاراکتر"*" را در اين خاصيت تايپ کنيد از اين پس کاربر هر چيزي که در جعبه متن تايپ کند به جاي آن "*" نمايش داده ميشود.
-MultiLine : اگر اين خاصيت فعال باشد جعبه متن ميتواند بيشتر از يک خط متن دريافت کند.
- Scrollbar : نوع ميله هاي لغز شي را برای جعبه متن معين کنيد که به صورت عمودي يا افقي نمايش داده شود.
کنترل جعبه تصوير(PictureBox)
از اين کنترل براي نمايش تصوير استفاده مي شود.
مهمترين خواص اين کنترل:
- AutoSize : اگر مقدار اين متغير True باشد اندازه جعبه تصوير به طور خودکار به اندازه تصوير مي شود.
- Picture : براي تعيين مسير و نام فايل تصويري است که قرار است به داخل کنترل اضافه شود.
کنترل قاب(Frame)
از اين کنترل براي دسته بندي کنترل ها استفاده مي شود. به عنوان مثال قسمت مربوط به تعيين جنسيت(مرد يا زن) در يک فرم را مي توان در يک قاب قرار داد. و ديگر اينکه اگر تعدادی از کنترل ها را در Frame قرار دهيد، براي جا به جايي لازم نيست که تک تک کنترل ها را تکان دهيد فقط کافي است که کنترل Frame را تغيير مکان دهيد. مهمترين خاصيت اين کنترل خاصيت Caption است که عنوان قاب است.
براي اضافه کردن کنترل ها به Frame بايد کنترل ها را مستقيما بر روي Frame مورد نظر اضافه کنيد

کنترل جعبه انتخاب(CheckBox)
از اين کنترل براي انتخاب چند گزينه استفاده مي شود. مثلا يک کاربر را در نظر بگيريد که قرار است تعدادی از سرگرمی های مورد علاقه خود را از يک ليست انتخاب کند.(کتاب خواندن-ورزش-سينما) .(شکل 7-2)
مهمترين خاصيت اين کنترل Value است که مشخص مي کند کنترل انتخاب شده (چک خورده) يا انتخاب نشده است. در صورتی که مقدار Value برابر با صفر باشد يعنی کنترل جعبه انتخاب هنوز انتخاب نشده و اگر برابر با يک باشد يعنی انتخاب شده است. براي نمايش عنوان جعبه انتخاب هم از خاصيت Caption استفاده کنيد.

کنترل دکمه انتخاب(OptionButton)
از اين کنترل براي انتخاب حداکثر يک انتخاب از چند حالت استفاده مي شود. به عنوان مثال ميخواهيم نوع جنسيت يک فرد را مشخص کنيم کاربر نميتواند هم مرد و هم زن را انتخاب کند و بايد يکي از اين دو را انتخاب کند.شکل(8-2)
مهمترين خواص اين کنترل هم مانند کنترل جعبه انتخاب، Value و Caption است.

کنترل جعبه ليست(ListBox)
اين کنترل ليستي از آيتم ها را نمايش مي دهد که کاربر ميتواند يکي از آنها يا بيشتر را انتخاب کند.
مهمترين خواص اين کنترل:
- List : براي اضافه کردن آيتم ها به اين کنترل از خاصيت List استفاده مي کنيم.
- Sort : اگر مقدار اين خاصيت True باشد آيتم هاي درون ListBox به صورت مرتب شده نمايش داده مي شود.
فرض کنيد می خواهيم ليستی از اسامی افراد را داشته باشيد که کاربر بتواند هر بار يکی از آنها را انتخاب کند. برای اين منظور بعد از اينکه کنترل را انتخاب کرديد از پنجره خواص، خاصيت List را پيدا کرده و به ترتيب اسم اول را وارد کرده و بعد دکمه هاي Ctrl + Enter را باهم فشار دهيد تا به خط بعد برود و اسم بعدي را وارد کنيد و به همين صورت تا آخر ادامه دهيد.

کنترل جعبه باز شدني(ComboBox)
کار اين کنترل هم مانند کنترل ListBox است ولي با اين تفاوت که فقط عنصری که انتخاب شده نمايش داده مي شود و گزينه های ديگر با کليک روی فلش کنار ليست نشان داده مي شوند.
کنترل نوار لغزنده افقي و عمودي(Scrollbar)
کنترل های نوار لغزنده افقی و عمودی جهت پيمايش ليست ها ، متن ، تصاوير و.. بکار مي رود. در هرکنترلي که محتويات آن از فضای نمايش بيشتر باشد کنترلهای نوار لغزنده فضا را قابل پيمايش می نمايد، تا محتويات به طور کامل ديده شود. مهمترين خاصيت اين کنترل ها Max و Min است که Max براي حداکثر اندازه اي که مي تواند کنترل بگيرد وMin حداقل مقداري است که مي تواند کنترل بگيرد.

کنترل تايمر(Timer)
اين کنترل با گذشت زمان دستوراتی را که در تنها رويداد آن يعنی رويداد Timer نوشته شده اجرا ميکند. فرض کنيد برنامه اي نوشته ايد وبايد هر 5 دقيقه اجرا شود بهترين روش استفاده از کنترل Timer است. مهمترين خواص Timer هم Interval است و براي مشخص کردن فاصله زمانی تکرار دستورهايي است که در رويدادTimer نوشته شده و واحد آن ميلي ثانيه است.(هر1000 ميلي ثانيه يک ثانيه است)

کنترل درايو(DrivelistBox)
از اين کنترل براي نمايش درايو ها ی موجود در سيستم استفاده مي شود. يعنی کاربر هنگام اجرا در داخل اين کنترل ليست درايوهای سيستم را می بيند و براساس نياز يکی از آنها را انتخاب می کند.

کنترل دايرکتوري(DirListBox)
از اين کنترل براي نمايش دايرکتوري های موجود در درايوهای سيستم استفاده مي شود. همانطور که مشخص است کنترل دايرکتوری با کنترل درايو((DrivelistBox ارتباط مستقيمي دارد. برای ارتباط اين دو کنترل با يکديگردر فصلهای بعدی صحبت خواهيم کرد.

کنترل فايل(FileListBox)
از اين کنترل براي نمايش فايل هاي موجود در سيستم استفاده مي شود که ارتباط نزديکي با کنترل هاي درايو و دايرکتوري دارد. برای نحوه ارتباط اين کنترلها با يکديگر در فصلهای بعدی صحبت خواهيم کرد.

کنترل اشکال(Shape)
همانطور که از نام اين کنترل مشخص است براي ترسيم اشکال بر روي فرم به کار مي رود. مهمترين خاصيت اين کنترل خاصيت Shape است که مشخص مي کند نوع شکل به صورت دايره، بيضي ويا اشکال ديگرباشد.

کنترل خط(Line)
اين کنترل براي کشيدن خط بر روي فرم استفاده مي شود. مهمترين خاصيت اين کنترل BorderStyle است که مشخص مي کند نوع خط به چه صورت باشد(خط چين – نقطه چين و غيره)(

ممکن است به خاطر راست چین بودن سایت(Right to Left) بعضی از کدهای نمونه پرانتز آنها به سمت چپ انتقال پیدا کرده باشد!
لطفا دقت کنید.