Visual Basic .NET
Download
Report
Transcript Visual Basic .NET
10 July 2010
1
VB.NET PROGRAMMING
Visual Basic .NET
Visual Basic .NET
By: S. Hassan Adelyar
10 July 2010
2
Visual Basic .NET
Visual Basic .NET
VB.NET PROGRAMMING
Object based programming language
Object oriented programming language
Usage
As a programming language
VBA
Web Design (ASP.NET)
Script files
CCE (Control Creation Edition)
By: S. Hassan Adelyar
10 July 2010
3
Visual Basic .NET
VB.NET PROGRAMMING
Visual Basic .NET
BASIC / GW Basic
QBasic
VB 1 – 1991
VB 6 1998
VB .NET 2000 (V 7)
VB .NET 2003 (V 7.1)
VB .NET 2005
VB.NET 2008
VB.NET 2010
By: S. Hassan Adelyar
10 July 2010
4
.NET Framework
Visual Basic .NET
The advancement of programming tools
still make the software development more
complex.
Writing robust enterprise-level applications
is a complex job.
Writing software is difficult, but many
other factors make producing good
software harder and more complicated.
VB.NET PROGRAMMING
By: S. Hassan Adelyar
10 July 2010
5
Visual Basic .NET
VB.NET PROGRAMMING
Windows Inconsistencies
At Windows environment we have at least 3
different programming model for producing
graphic-intensive applications:
GDI
DirectX
OpenGL
Each model is completely different with other.
By: S. Hassan Adelyar
10 July 2010
6
Visual Basic .NET
MS Developed different models for accessing
databases.
Data Access Object (DAO)
Remote Data object (RDO)
ActiveX Data Object (ADO)
They are largely incompatible with each other.
VB.NET PROGRAMMING
By: S. Hassan Adelyar
10 July 2010
7
Visual Basic .NET
VB.NET PROGRAMMING
Windows itself has differences:
Windows 95
Windows 98
Windows ME
Windows 2000
Windows CE
Windows XP
By: S. Hassan Adelyar
10 July 2010
8
Visual Basic .NET
Therefore, programming is a difficult job.
.NET environment offer programming model
that allows programs created in diversity
programming languages to communicate
with each other.
VB.NET PROGRAMMING
By: S. Hassan Adelyar
VB.NET PROGRAMMING
9
.NET
10 July 2010
Visual Basic .NET
MS Strategy
The advancement of programming tools and customer
electronic devices created many challenges.
Integrating software components from diverse languages
proved difficult.
Developers also discovered they needed web-based applications
that could be accessed and used via the Internet.
As programmable devices, such as PDA and cell phones, grew in
popularity in the late 1990s, the need for these components to
interact with others via the internet rose dramatically.
By: S. Hassan Adelyar
10 July 2010
VB.NET PROGRAMMING
10
Visual Basic .NET
As a result of the popularity of mobile electronic devices, software
developers realized that their clients were no longer restricted to
desktop users. Developers recognized the need for software
accessible to anyone from almost any type of device.
To address these needs, micro-soft announced the introduction of
the micro-soft.NET strategy in 2000. The .NET platform is one
over which web-based applications can be distributed to a variety
of devices (such cell phone) and to desktop computers. The .NET
platform offers a new programming model that allows programs
created in disparate programming languages to communicate with
each other.
By: S. Hassan Adelyar
10 July 2010
11
Visual Basic .NET
VB.NET PROGRAMMING
.NET
MS Strategy
The layer that sits between the language (in this case,Visual Basic) and the
operating system
Web-based applications can be distributed to a variety of devices on the net /
Internet.
Offer programming model that allows programs created in diversity
programming languages to communicate with each other.
Advancement of programming tools and electronic devices create many
challenges.
Integrating software components from diverse languages proved difficult.
Web-based applications that could be accessed through Internet.
By: S. Hassan Adelyar
10 July 2010
12
Visual Basic .NET
VB.NET PROGRAMMING
.NET Intentions:
Interoperability
Language Independence
Base Class Library
Platform Independence
By: S. Hassan Adelyar
10 July 2010
13
Visual Basic .NET
VB.NET PROGRAMMING
DLL
Software components
When Windows needed a particular features it
loaded only the pieces that was needed. These
pieces are called DLL.
By: S. Hassan Adelyar
10 July 2010
14
Visual Basic .NET
برای کار در ویژول بسیک دات نت یک پروژه( ) Projectرا باز کنید .پروژه عبارت از
مجموعه فایل های یک پروگرام میباشد .هر پروگرام میتواند دارای چندین فالی باشد.
بعضی از این فایل ها حاوی کود )(Codeپروگرام ،و برخی دیگر آن حاوی اشکال
ظاهري پروگرام میباشد.
ویژول بسیک دات نت بعد از اجراي هر پروگرام براي همان پروگرام چند فولدر را
ایجاد مینماید:
یک فولدر بنام binکه در آن پروگرام اجرا شده و اجزاي آن را حفظ مینماید.
فولدر objکه منابع که به Applicationتخصیص گردیده آنرا حفظ مینماید.
فولدر Myprojectکه فایلهاي عیارسازي را حفظ میکند.
درپروژه کار باالي فورم ) (Formمیباشد .در یک پروژه چندین فورم مي تواند وجود
داشته باشد .و فورم یک آبجکت است .پس فورم دارای خصوصیات )(Properties
است .فورم دارای میتود ها ) (Methodsاست .و فورم دارای حادثات ) (Eventsاست.
By: S. Hassan Adelyar
VB.NET PROGRAMMING
محيط کاري ويژول بسيک دات نت
10 July 2010
15
Visual Basic .NET
پروژه و فورمهاي مربوط همان پروژه باید در دیسک ذخیره ) (Saveشود .در ویژول
بسیک دات نت فورم را بنام فورم ویندوز ) (Windows Formیاد میکند.
در وسط صفحه فورم است .در قسمت باالي صفحه مینو ها ) (Menusو ابزار )(Tools
قرار دارد .به طرف چپ صفحه کنترولها و یا آبجکت هاي اند که در اثناي کار در پروژه
از آن استفاده میشود .هر کدام ازاین آبجکت ها داراي خصوصیات ،میتود ها و حادثات
است .در طرف راست صفحه ،خصوصیات ) (Propertiesآبجکت انتخاب شده نشان داده
شده است .و شما میتوانید با تعین قیمت براي هر یک از این خصوصیات نمایش آبجکت
را تغیر دهید.
By: S. Hassan Adelyar
VB.NET PROGRAMMING
محيط کاري ويژول بسيک دات نت
10 July 2010
By: S. Hassan Adelyar
VB.NET PROGRAMMING
ارتباط گرافيکي استفاده کننده
)Graphical User Interface (GUI
Visual Basic .NET
GUIعبارت از راه گرافیکي ارتباط است که به کمک آن استفاده کننده کمپیوتر به شکل
گرافیکي ومرئي با پروگرام ها ارتباط برقرار میکند GUI .داراي اجزاي مختلف از قبیل
مینوها ) ،(Menusدکمه ها ) ، (Buttonsباکس هاي متن ) ،(TextBoxesلیبل
ها) ،ScrollsBars ،(Labelsدکمه هاي اختیاري ) ،(Option Buttonsکامبو باکس
) ،(ComboBoxesلست باکس ها ) (ListBoxesو غیره میباشد .اجزاي GUIدر
حقیقت آبجکتهاي است که از طریق آن و به کمک موس یا صفحه کلید استفاده کننده
همراي پروگرام ارتباط برقرار میکند .این آبجکتها را بنام کنترول ها هم یاد میکند .براي
ایجاد کردن GUIاز فورم ) (Formاستفاده میشود .فورم هم یک کنترول یا ابجکت
است که کنترولها و آبجکتهاي دیگر باالي آن قرار داده میشود .در ویژول بسیک دات نت
ده ها ابجکت وجود دارد و پروگرامر هم میتواند آبجکتهاي جدید را ایجاد نماید.
دراینجا بعضي از ابجکتهاي که استفاده بیشتر دارد مورد بحث قرار میدهیم.
16
10 July 2010
آبجکتهاي ويژول بسيک
17
Visual Basic .NET
By: S. Hassan Adelyar
VB.NET PROGRAMMING
فورم )(Form
فورم یک آبجکت مهم ویژول بسیک است .در اثناي کار در پروژه هاي ویژول بسیک
فورم مانند زمین براي آبجکت هاي دیگري که در پروژه استفاده میشود ،میباشد .آبجکت
ها باالي فورم قرار داده میشود.
طوریکه قبال نیز یادآور شدیم که فورم یک آبجکت است ،پس فورم داراي خصوصیات
) ،(Propertiesمیتودها ) ،(Methodsو حادثات (Eventsاست .در این قسمت جهت
آشنائي با محیط کاري ویژول بسیک دات نت بعضي خصوصیات )،(Properties
میتودها ) ،(Methodsو حادثات ) (Eventsفورم را با چند مثال مطالعه می نمائیم:
10 July 2010
خصوصيات فورم(Form Properties):
By: S. Hassan Adelyar
VB.NET PROGRAMMING
Visual Basic .NET
خصوصیات طرز نمایش آبجکتها را تعین میکند .فورم داراي خصوصیات بوده که طرز
نمایش فورم را تعین میکند .خصوصیات فورم قیمت هاي مختلف را به خود گرفته
میتواند .در اثر این قیمت هاي متفاوت نمایش فورم تغیر میکند .قیمت خصوصیات فورم
را هم از حالت دیزاین فورم و هم از کود تغیر داده میتوانیم .قابل تذکر است که قیمت
بعضي خصوصیات را تنها از کود تغیر داده میتوانیم.
18
10 July 2010
19
Visual Basic .NET
By: S. Hassan Adelyar
VB.NET PROGRAMMING
خصوصیات مهم فورم قرار ذیل است:
خاصيت :Nameتوسط خاصیت ، Nameنام براي فورم تعین کرده میتوانیم .به کمک
همین نام فورم در ویژول بسیک شناخته میشود .از نام فورم بیشتر در کود ویژول بسیک
استفاده میشود .مثال اگر خواسته باشیم رنگ زمین یک فورم را تغیر دهیم ،از نام فورم
باید استفاده نمائیم:
Form1.BackColor = Color.Red
دستور فوق رنگ زمین ) (BackColorبراي Form1را به رنگ سرخ تبدیل میکند.
در این دستور خود فورم که بنام Form1است آبجکت است BackColor ،خاصیت
فورم است و Color.Redقیمت است که به این خاصیت (متحول) داده شده است .اگر
خواسته باشیم تا نام فورم را تغیر دهیم ،به خاصیت Nameآن قیمت میدهیم .مثال
میخواهیم نام فورم را به frmCSFتبدیل نمائیم ،پس به خاصیت Nameفورم قیمت
frmCSFمیدهیم.
Form1.Name = frmCSF
10 July 2010
Visual Basic .NET
دستور فوق نام فورم را از Form1به frmCSFتبدیل میکند.
نوت :در ویژول بسیک دات نت اگر از داخل خود فورم قیمت یک خاصیت را تغیر
میدهیم باید از Aliasفورم ) (Meاستفاده کنیم .براي تغیر دادن رنگ آن باید طور ذیل
تایپ نمائیم:
Me.BackColor = Color.Azure
خاصيت :Backcolorاین خاصیت رنگ زمین فورم را تعین میکند.
Form1.BackColor = Color.Red
خاصيت :BackgroundImageتوسط این خاصیت براي صفحه فورم یک تصویر را
انتخاب کرده میتوانیم.
By: S. Hassan Adelyar
VB.NET PROGRAMMING
20
10 July 2010
Visual Basic .NET
خاصيت :Forecolorاین خاصیت رنگ متن فورم را تعین میکند.
Form1.forecolor = Color.Blue
خاصيت :ControlBoxاین خاصیت داراي قیمت درست ) (Trueو نادرست )(False
میباشد .اگر قیمت آن درست باشد کنترولهاي که جهت بسته نمودن فورم )، (Close
Restoreکردن فورم و خورد ساختن فورم ) (Minimizeاست نشان داده میشود .و
اگر قیمت آن نادرست ) (Falseباشد این کنترولها نشان داده نمیشود.
خاصيت :Cursorاین خاصیت شکل موس را باالي آبجکت تعین میکند.
خاصيت :FormBorderStyleاین خاصیت طرز نمایش چوکات فورم را تعین میکند.
By: S. Hassan Adelyar
VB.NET PROGRAMMING
21
10 July 2010
Visual Basic .NET
خاصيت :MinimizeBoxاین خاصیت میتواند قیمت درست و نادرست داشته باشد .اگر
قیمت آن درست باشد فورم را بعد از اجراي پروگرام هم میتوانیم خورد نمائیم .و اگر
قیمت آن نادرست باشد در آنصورت فورم را بعد از اجراي پروگرام خورد ساخته
نمیتوانیم.
خاصيت :Textاین خاصیت عنوان فورم را تعین میکند .قیمت این خاصیت ،که معموال
یک متن میباشد ،عنوان فورم میشود.
خاصيت :MaximizeBoxاین خاصیت نیز میتواند قیمت درست و نادرست داشته باشد.
اگر قیمت آن درست باشد فورم را بعد از اجراي پروگرام هم میتوانیم بزرگ نمائیم .و اگر
قیمت آن نادرست باشد در آنصورت فورم را بعد از اجراي پروگرام بزرگ ساخته
نمیتوانیم.
خاصيت :Iconتوسط این خاصیت براي فورم Iconرا تعین کرده میتوانیم.
By: S. Hassan Adelyar
VB.NET PROGRAMMING
22
10 July 2010
Visual Basic .NET
خاصيت :TopMostاگر قیمت این خاصیت درست باشد فورم هروقت باالي آبجکتهاي
دیگر قرار میگیرد.
خاصيت :ShowIconاین خاصیت میتواند داراي قیمت درست و یا نادرست باشد .در
صورتیکه قیمت ان درست باشد Iconفورم نشان داده میشود و اگر نادرست باشد Icon
فورم نشان داده نمیشود.
خاصيت :RightToLeftاین خاصیت هم میتواند قیمت Trueو یا Falseرا داشته
باشد .اگر قیمت آن Trueباشد در صفحه فورم از راست به چپ نوشته میشود (براي متن
عربي ،دري ویا پشتو) ،و اگر قیمت آن Falseباشد از چپ به طرف راست نوشته
میگردد ( براي متن انگلیسي).
Form1.RightToLeft = True
خاصيت :ShowInTaskbarاگر قیمت این خاصیت درست باشد ،فورم در اثناي اجرا
در Taskbarویندوز نشان داده میشود .و اگر نادرست باشد نشان داده نمیشود.
By: S. Hassan Adelyar
VB.NET PROGRAMMING
23
10 July 2010
Visual Basic .NET
خاصيت :StartPositionتوسط این خاصیت محل فورم را در اثناي اجراي پروگرام
تعین کرده میتوانیم.
خاصيت :AcceptButtonاین خاصیت دکمه که در اثر فشار دادن کلید Enterصفحه
کلید اجرا شود را تعین میکند.
خاصيت :AutoScrollقیمت منطقي ) (Booleanکه نشان دادن ویا عدم نشان دادن
ScrollBarsرا تعین میکند.
خاصيت :CancelButtonاین خاصیت دکمه که در اثر فشار دادن کلید Enterصفحه
کلید اجرا شود را تعین میکند.
By: S. Hassan Adelyar
VB.NET PROGRAMMING
24
10 July 2010
VB.NET PROGRAMMING
25
Visual Basic .NET
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
Me.BackColor = Color.Coral
Me.Text = "Kabul University"
Me.ControlBox = False
Me.ForeColor = Color.BlueViolet
Me.Cursor = Cursors.Hand
Me.AutoScroll = True
End Sub
End Class
By: S. Hassan Adelyar
10 July 2010
ميتود هاي فورم )(Form Methods
26
By: S. Hassan Adelyar
VB.NET PROGRAMMING
Visual Basic .NET
فورم داراي میتود ها است .میتود ها عبارت از پروگرام هاي فرعي از قبل تهیه شده است
که در داخل کالس تعریف گردیده و آبجکت هاي همان کالس آنرا استفاده میکند .میتودها
در حقیقت کار هاي را تعین میکند که یک آبجکت آنرا انجام داده میتواند.
بعضي میتود هاي مهم فورم قرار ذیل میباشد:
ميتود :Showاین میتود فورم را در صفحه نمایش نشان میدهد .به پروگرام فرعي ذیل
توجه کنید:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
)(Form2.Show
End Sub
End Class
VB.NET PROGRAMMING
27
(Form Methods) ميتود هاي فورم
10 July 2010
Visual Basic .NET
به مثال ذیل. این میتود فورم را از روی صفحه نمایش مخفی می سازد:Hide ميتود
:توجه نمائید
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
Form2.hide()
End Sub
End Class
By: S. Hassan Adelyar
VB.NET PROGRAMMING
28
(Form Methods) ميتود هاي فورم
10 July 2010
Visual Basic .NET
. این میتود با دو بار فشار دادن دکمه موس باالي فورم پروگرام شده میتواند:Load ميتود
: را نشان میدهدLoad پروگرام ذیل میتود
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.ControlBox = False
End Sub
: را نشان میدهدLoad پروگرام ذیل میتود. این میتود فورم را بسته میکند:Close ميتود
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Me.Close()
End Sub
By: S. Hassan Adelyar
10 July 2010
حادثات فورم
)(Form Events
By: S. Hassan Adelyar
VB.NET PROGRAMMING
Visual Basic .NET
در محیط هاي شي گرا ،براي نوشتن پروگرام ،روش هاي متعدد وجود دارد .یکي از این
روشها استفاده از حادثات ) (Eventsاست .حادثه چه است؟ حادثه یا رویداد عبارت از
یک عمل میباشد که باالي یک شي یعني آبجکت اجرا میشود .اگر دکمه موس را باالي
دکمه امر ) (Command Buttonفشار دهیم حادثه فشار دادن دکمه موس ) (Clickرخ
میدهد .همراي هر حادثه میتوانیم دستور هاي مشخص را اجرا نمائیم .از اینکه فورم یک
آبجکت است پس فورم داراي حادثات ) (Eventsاست .حادثات عبارت از کارهاي
است که باالي فورم انجام شده میتواند .اکثر حادثات فورم توسط موس و یا صفحه کلید
انجام میشود.
29
10 July 2010
VB.NET PROGRAMMING
30
Visual Basic .NET
این حادثه وقتي رخ میدهد که باالی فورم یکبار توسط دکمه موس فشار:Click حادثه
: به مثال ذیل توجه کنید.وارد شود
Public Class Form1
Private Sub Form1_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Click
Me.BackColor = Color.FromArgb(Rnd() * 255, Rnd() * 255, Rnd()
* 255)
End Sub
End Class
By: S. Hassan Adelyar
10 July 2010
VB.NET PROGRAMMING
31
Visual Basic .NET
این حادثه وقتي رخ میدهد که باالی فورم دوبار توسط دکمه موس:Dblclick حادثه
.فشار وارد شود
Private Sub Form1_DoubleClick(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.DoubleClick
Me.Text = "You clicked twice"
MessageBox.Show("Please click on Ok")
End Sub
By: S. Hassan Adelyar
10 July 2010
Visual Basic .NET
عنوان يا نشاني (: )Labelاین کنترول جهت نشان دادن متن در روی فورم به کار برده
میشود .معموال عناوین در روی فورم توسط همین کنترول نشان داده میشود .کنترول
Labelنیز یک شي یعني آبجکت بوده فلهذا داراي خواص است .بعضي خواص آن مانند
فورم بوده و قسمتي دیگر از خواص ) (Propertiesآن قرار ذیل است:
خاصیت :Textعنوان یا محتوي Labelرا حفظ میکند.
خاصیت :Fontفونت Labelرا تعین میکند.
خاصیت : BorderStyleنمایش چوکات Labelرا تعین میکند.
خاصیت :Locationمحل قرار گرفتن Labelباالي فورم را تعین میکند.
خاصیت Alignment :TextAlignمتن Labelرا تعین میکند .متن میتواند از طرف
راست Alignباشد ویا چپ و یا هم در وسط یک کنترول قرار داشته باشد.
خاصیت :Visibleاین خاصیت میتواند قیمت درست ) (Trueویا نادرست )(False
باشد .اگر قیمت آن درست باشد Labelدر اثناي اجراي پروگرام در باالي فورم نشان
داده میشود .و اگر نادرست باشد نشان دهده نمیشود.
By: S. Hassan Adelyar
VB.NET PROGRAMMING
32
VB.NET PROGRAMMING
33
استفاده ازکنترولها
10 July 2010
Visual Basic .NET
. اکنون میخواهیم طرز استفاده این کنترولها را با ارائه مثالهاي آن مورد بحث قرار دهیم
چون هر کنترول یک آبجکت است پس هر یک از کنترول هاي فوق داراي خصوصیات
.( استEvents) و حادثات،(Methods) میتود ها،(Properties)
و،TextBox2 ،TextBox1 پروگرام فرعی ذیل مجموع اعداد که در:1 مثال
: نشان میدهدTextBox4 است درTextBox3
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
TextBox4.Text = Val(TextBox1.Text) + Val(TextBox2.Text) +
Val(TextBox3.Text)
End Sub
By: S. Hassan Adelyar
VB.NET PROGRAMMING
34
استفاده ازکنترولها
10 July 2010
Visual Basic .NET
و،TextBox2 ،TextBox1 پروگرام فرعی ذیل اوسط اعداد که در:2 مثال
: نشان میدهدTextBox4 است درTextBox3
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
TextBox5.Text = (Val(TextBox1.Text) + Val(TextBox2.Text) +
Val(TextBox3.Text)) / 3
End Sub
By: S. Hassan Adelyar
10 July 2010
VB.NET PROGRAMMING
35
Visual Basic .NET
است یافته و آنرا در،TextBox2 عدد که درm پروگرام فرعی ذیل جذر:3 مثال
: نشان میدهدTextBox3
Private Sub btntotal_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btntotal.Click
Dim m As Integer
m = Val(TextBox1.Text)
TextBox3.Text = Val(TextBox2.Text) ^ (1 / m)
End Sub
By: S. Hassan Adelyar
10 July 2010
Visual Basic .NET
طوریکه میدانیم که از لسانهاي پروگرام نویسي براي نوشتن پروگرامها استفاده میشود.
هر پروگرام که شما در کمپیوتر تان میبینید و یا از آن استفاده میکنید به کمک لسانهاي
پروگرام نویسي تهیه میشود .بدون وجود لسانهاي پروگرام نویسي پروگرامهاي کمپیوتري
را تهیه کرده نمیتوانیم و در اثناي کار باکمپیوتر باید از لسان خود کمپیوتر که عبارت از
صفر ویک است استفاده نمائیم.
هر لسان پروگرام نویسي داراي کلمات کلیدي ) ،(Key-wordsدستورها ،وهمچنین
قواعد امالئي ) (Syntax Rulesبراي نوشتن پروگرامها است .جهت استفاده از یک لسان
براي ساختن پروگرامها ،آموختن دستورها و قواعد امالئي آن ضروري میباشد.
خوشبختانه که منطق ساختن پروگرامها در لسانهاي مختلف پروگرام نویسي یکسان بوده و
فهم یک لسان در آموختن لسان دیگر کمک میکند .به نظر من اکر ما یک لسان پروگرام
نویسي را بهتر یاد بگیریم بعد از آن خودما میتوانیم لسانهاي دیگر پروگرام نویسي را
بیاموزیم.
By: S. Hassan Adelyar
VB.NET PROGRAMMING
پروگرام نويسی در ويژول بسيک دات نت
36
10 July 2010
37
Visual Basic .NET
قسمتي ازحافظه کمپیوتر است که به یک نام مسمي گردیده (نام متحول) و قیمت ها را در
اثناي اجراي پروگرام ذخیره میکند ،عبارت از متحول میباشد .برای اینکه یک متحول را
استفاده کرده بتوانیم اول باید آنرا تعریف کنیم .در ویژول بسیک متحول را توسط دستور
Dimتعریف کرده میتوانیم.
شکل عمومی دستور Dimقرار ذیل است:
Dim
Asنام متحول
نوع متحول
نام متحول در ویژول بسیک میتواند از یک تا 255حرف باشد .کلمات کلیدی (Key
) Wordsویژول بسیک را نمی توانیم به حیث نام متحول استفاده نمائیم.
نوع متحول میتواند عددی ،حروفی ،منطقي ،تاریخ و یا تعریف شده توسط استفاده کننده
باشد .در حقیقت نوع متحول قیمت هاي را که متحول گرفته میتواند و طرز ذخیره آنرا
تعین میکند .متحول عددی در ویژول بسیک به پنج نوع ذیل میباشد:
By: S. Hassan Adelyar
VB.NET PROGRAMMING
متحول )(Variable
10 July 2010
Visual Basic .NET
: Byteاین نوع متحول قیمت هاي بدون عالمه از صفر تا 255را گرفته و یک بایت از
حافظه کمپیوتر را اشغال میکند.
:Integerاین نوع متحول چهار بایت از حافظه کمپیوتر را اشغال میکند.
:Longاین نوع متحول هشت بایت از حافظه کمپیوتر را اشغال میکند.
:Singleاین نوع متحول نیز چهار بایت از حافظه کمپیوتر را اشغال میکند.
:Doubleاین نوع متحول نیز هشت بایت از حافظه کمپیوتر را اشغال میکند.
عالوه برانواع عددی Dataیک متحول میتواند یکی ازانواع ذیل نیزباشد:
متحول حروفی :برای تعریف متحول حروفی ،در قسمت نوع متحول کلمه کلیدی String
را مینویسیم .به مثال ذیل توجه کنید:
Dim stname As string
متحول حروفي به تعداد حروف سلسله جمع 10بایت دیگر حافظه را اشغال میکند .مثال
اگر سلسله 15حرفي را ذخیره مینمائیم 25بایت حافظه گرفته میشود.
By: S. Hassan Adelyar
VB.NET PROGRAMMING
38
10 July 2010
39
By: S. Hassan Adelyar
VB.NET PROGRAMMING
Visual Basic .NET
متحول منطقي يا بولی( : )Booleanاینوع متحول قیمت های درست( )Trueویا
نادرست( )Falseرا ذخیره میکند .اینوع متحول قیمت درست را توسط صفر و قیمت
نادرست را توسط -1نشان میدهد .ویژول بسیک دو بایت (البته این نقطه مربوط به
سیستم عامل هم است و از یک سیستم عامل تا سیستم عامل دیگر فرق میکند) را براي
متحول بولي در نظر میگیرد.متحول بولي را طور ذیل تعریف کرده میتوانیم:
AS BOOLEANنام متحول DIM
Example:
DIM pass AS BOOLEAN
10 July 2010
Visual Basic .NET
نوت :همراي متحول منطقي از عملگرهاي منطقي مانند OR ،NOTو ANDهم
استفاده کرده میتوانیم .مثال عملگر NOTقیمت متحول منطقي را به قیمت عکس آن تغیر
میدهد:
Pass = NOT pass
در حقیقت دستور فوق جاي چندیدن دستور ذیل را میگیرد:
IF pass = TRUE THEN
Pass = FALSE
ELSE
Pass = TRUE
END IF
By: S. Hassan Adelyar
VB.NET PROGRAMMING
40
10 July 2010
41
متحول Dateرا طور ذیل تعریف کرده میتوانیم:
AS DATE
By: S. Hassan Adelyar
نام متحول DIM
VB.NET PROGRAMMING
Visual Basic .NET
متحول : Dateاینوع متحول قیمت های که به شکل تاریخ ووقت باشد گرفته میتواند.
تاریخ و وقت در داخل کمپیوتر به یک فارمت خاص که بنام Double-precisionیاد
میشود ،ذخیره میگردد .قسمت تام این عدد تاریخ و قسمت اعشاري آن وقت را تمثیل
میکند .متحول Dateهشت بایت حافظه را اشغال میکند .این متحول میتواند قیمت هاي از
00:00:00اول جنوري سال 1تا به 11:59:59ماه دیسمبر سال 9999را ذخیره نماید.
10 July 2010
42
VB.NET PROGRAMMING
Visual Basic .NET
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim stdate As Date
stdate = Date.Now
TextBox1.Text = stdate.Date
TextBox2.Text = stdate.DayOfWeek
TextBox3.Text = stdate.DayOfYear
TextBox4.Text = stdate.Kind
TextBox5.Text = stdate.Month
TextBox6.Text = stdate.Hour
TextBox7.Text = stdate.Year
TextBox8.Text = stdate.Ticks
End Sub
By: S. Hassan Adelyar
10 July 2010
43
Visual Basic .NET
By: S. Hassan Adelyar
VB.NET PROGRAMMING
متحول آبجکت:
اینوع متحول میتواند آبجکت های VBرا ذخیره نماید .مقدار حافظه که توسط متحول
آبجکت گرفته میشود نظر به سیستم عامل فرق میکند .در سیستم عامل 32بیتي چهار بایت
و در سیستم عامل 64بیتي 8بایت حافظه را اشغال میکند .این نوع متحول ریفرنس هر
نوع (مانند Class ،Array ،Stringو غیره) را ذخیره کرده میتواند .وقتیکه نوع Data
در اثنای اجرای پروګرام برای ما معلوم نباشد از این نوع متحول استفاده میکنیم.
Dim myObject As Object
Dim datTyp As Integer
Dim v As Object
“v = "17
v = v – 15
v = "H" & v
10 July 2010
ثابت )(Constant
44
By: S. Hassan Adelyar
VB.NET PROGRAMMING
Visual Basic .NET
ثابت عبارت از نوع Dataاست که قیمت ان در اثناي اجراي پروگرام تغیر نمیکند .در
ویژول بسیک ثابت را طور ذیل تعریف کرده میتوانیم:
Const pi AS DOUBLE = 3.1415926
ثابت نظر به متحول داراي خوبي هاي ذیل میباشد:
قیمت ثابت بعد از تعریف آن تغیر نمیکند.
با تغیر دادن قیمت آن در تمام قسمت هاي پروگرام ،قیمت آن تغیر گردیده و اینکار باعث
سهولت در تغیر قیمت ها میشود.
ثابت نظر به متحول به سرعت و آساني توسط کمپیوتر پراسس میشود.
بعضی اوقات ضرورت می افتد تا نوع متحول را تغیر دهیم .جدول ذیل توابع VBرا
نشان میدهد که توسط آن می توانیم یک متحول را از یک نوع به نوع دیگر تغیر دهیم:
VB.NET PROGRAMMING
45
(Constant) ثابت
Visual Basic .NET
CByte
Byte
Cdate
Date
Cdbl
Double
Cint
Integer
Clng
Long
CSng
Single
Cstr
String
CVar
Variant
By: S. Hassan Adelyar
10 July 2010
10 July 2010
Visual Basic .NET
امتحان نمودن نوع متحول :برای معلوم نمودن نوع متحول از دو تابع ذیل استفاده کرده
می توانیم:
) ( :VarTypeجواب عددی که همان عدد نظربه نوع متحول فرق میکند.
) ( : TypeNameجواب stringکه همان stringنوع متحول را نشان میدهد.
Vbinteger 2
Vblong
3
Vbsingle
4
Vbdate
7
Vbstring
8
By: S. Hassan Adelyar
VB.NET PROGRAMMING
46
10 July 2010
VB.NET PROGRAMMING
47
Visual Basic .NET
: هم استفاده کرده میتوانیمParse از تابعValue بهText براي تبدیل کردن
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
TextBox3.Text = Integer.Parse(TextBox1.Text) +
Integer.Parse(TextBox2.Text)
End Sub
End Class
By: S. Hassan Adelyar
10 July 2010
48
Visual Basic .NET
VB.NET PROGRAMMING
: استفاده کنیمCType ویا هم میتوانیم از تابع
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
TextBox3.Text = CType(TextBox1.Text, Integer) +
CType(TextBox2.Text, Integer)
End Sub
End Class
By: S. Hassan Adelyar
VB.NET PROGRAMMING
49
(Conditional Statements) دستور های شرطی
10 July 2010
Visual Basic .NET
: از دستور های ذیل استفاده میشود،برای اجرای مشروط یک یا چند سطر پروگرام
IF ……..THEN
IF……...THEN…….ELSE
SELECT……CASE
: قرار ذیل استIF….THEN شکل عمومی
IF Condition THEN Statement
:همچنین این دستور را طور ذیل نیز استفاده کرده میتوانیم
IF Condition THEN
Statement(s)
END IF
: قرار ذیل استIF….THEN…..ELSE شکل عمومی
IF Condition-1 THEN
By: S. Hassan Adelyar
(Conditional Statements) دستور های شرطی
VB.NET PROGRAMMING
50
10 July 2010
Visual Basic .NET
: از دستور های ذیل استفاده میشود،برای اجرای مشروط یک یا چند سطر پروگرام
IF ……..THEN
IF……...THEN…….ELSE
SELECT……CASE
: قرار ذیل استIF….THEN شکل عمومی
IF Condition THEN Statement
:همچنین این دستور را طور ذیل نیز استفاده کرده میتوانیم
IF Condition THEN
Statement(s)
END IF
By: S. Hassan Adelyar
51
(Conditional Statements) دستور های شرطی
10 July 2010
VB.NET PROGRAMMING
Visual Basic .NET
: قرار ذیل استIF….THEN…..ELSE شکل عمومی
IF Condition-1 THEN
Statement(s)
ELSEIF Condition-2 THEN
Statement(s)
…………..
…………..
ELSE
Statement(s)
END IF
By: S. Hassan Adelyar
10 July 2010
52
VB.NET PROGRAMMING
Visual Basic .NET
:IF … THEN …. ELSE مثالهای دستور
: پروگرام فرعی ذیل زکات پول نقد را محاسبه میکند:1 مثال
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
Dim money, zakat As Integer
money = InputBox("Enter the amount of money: ")
If money < 200 Then
MessageBox.Show("No Zakat")
Else
zakat = (money - 200) \ 40 + 5
MessageBox.Show("Zakat is: " & zakat)
End If
By: S. Hassan Adelyar
End Sub
10 July 2010
53
VB.NET PROGRAMMING
Visual Basic .NET
: پروگرام فرعی ذیل مالیه معاشات را محاسبه میکند:2 مثال
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
If Val(TextBox1.Text) < 12000 Then
TextBox2.Text = "No Tax"
ElseIf Val(TextBox1.Text) < 20000 Then
TextBox2.Text = Val(TextBox1.Text) * 10 / 100
ElseIf Val(TextBox1.Text) < 30000 Then
TextBox2.Text = Val(TextBox1.Text) * 20 / 100
Else
TextBox2.Text = Val(TextBox1.Text) * 30 / 100
End If
By: S. Hassan Adelyar
End Sub
10 July 2010
54
VB.NET PROGRAMMING
Visual Basic .NET
: را محاسبه مینمایدx+3x^2-10 = 0 پروګرام فرعی ذیل جذر معادله:4 مثال
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
TextBox1.Text = "X+3x^2-10=0"
Dim x As Single
x=0
again:
If (x + 3 * x ^ 2 - 10) - 0 >= 0.00001 Then
MessageBox.Show("The value of x is: " & x)
GoTo endprog
Else
x = x + 0.00001
GoTo again
End If
endprog:
End Sub
By: S. Hassan Adelyar
10 July 2010
VB.NET PROGRAMMING
55
Visual Basic .NET
: پروګرام فرعی ذیل جذر های معادله درجه دوم را محاسبه میکند:5 مثال
' x1, x2 = (-b+|- (b^2-4ac)^0.5)/2a & ' x2 = (-b- (b^2-4ac)^0.5)/2a
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim a, b, c, r, x1, x2 As Single
a = TextBox1.Text
b = TextBox2.Text
c = TextBox3.Text
r = (b ^ 2 - 4 * a * c)
If r < 0 Then
GoTo halt
By: S. Hassan Adelyar
10 July 2010
VB.NET PROGRAMMING
56
Visual Basic .NET
Else
r = r ^ 0.5
End If
x1 = (-b + r) / (2 * a)
x2 = (-b - r) / (2 * a)
MessageBox.Show("The value of x1 & x2 are: " & x1 & "," & x2)
GoTo endprog
halt:
MessageBox.Show("No root for this equation! ")
endprog:
End Sub
By: S. Hassan Adelyar
10 July 2010
57
Visual Basic .NET
VB.NET PROGRAMMING
: پروگرام فرعی ذیل پاسورد را ارزیابی مینماید:6 مثال
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
Dim c As Byte
c=1
Dim prog As Object
abc:
c=c+1
prog = InputBox("Enter you Password")
If prog = "ab@_6s" Then
MessageBox.Show("Pssword accepted")
Else
By: S. Hassan Adelyar
10 July 2010
VB.NET PROGRAMMING
58
Visual Basic .NET
MessageBox.Show("Wrong Password")
If c < 4 Then
GoTo abc
Else
Me.Enabled = False
End If
End If
End Sub
By: S. Hassan Adelyar
10 July 2010
59
VB.NET PROGRAMMING
Visual Basic .NET
: پروگرام فرعی ذیل نیز پاسورد را ارزیابی مینماید:7 مثال
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click
If pass.Text = "abc123" Then
T1.Enabled = True
t2.Enabled = True
Else
MessageBox.Show(")"پاسورد شما درست نیست
End If
End Sub
By: S. Hassan Adelyar
10 July 2010
VB.NET PROGRAMMING
60
Visual Basic .NET
("Good Afternoon") "( و یاGood marning") پروگرام فرعی ذیل پیغام:8 مثال
:را نظر به وقت روز میدهد
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
score.Text = DateAndTime.TimeOfDay
If Hour(DateAndTime.TimeOfDay) < 12 Then
MessageBox.Show("Good marning")
Else
MessageBox.Show("Good Afternoon")
End If
End Sub
By: S. Hassan Adelyar
10 July 2010
61
VB.NET PROGRAMMING
Visual Basic .NET
: پروگرام فرعی ذیل نیز پاسورد را ارزیابی میکند:9 مثال
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button3.Click
Dim pass As String
TextBox1.PasswordChar = "*"
pass = TextBox1.Text
If pass = passstore Then
Me.Close()
Else
MessageBox.Show(")"پاسورد شما درست نیست
End If
End Sub
By: S. Hassan Adelyar
SELECT CASE دستور
VB.NET PROGRAMMING
62
10 July 2010
Visual Basic .NET
میباشد وIF … THEN … ELSE مشابه به دستورSELECT CASE وظیفه دستور
در صورت که تعداد حاالت زیاد باشد بهتر.برای تست نمودن چند شرط استفاده میشود
. استفاده شودSELECT … CASE است از دستور
: قرار ذیل استSELECT…..CASE شکل عمومی دستور
SELECT CASE Expression
CASE
CASE
Value-1
Statement(s)
Value-2
Statement(s)
……..
……..
CASE ELSE
Statement(s)
END SELECT
By: S. Hassan Adelyar
10 July 2010
63
VB.NET PROGRAMMING
Visual Basic .NET
SELECT CASE Weekday(date)
CASE 1
DayName = “Monday”
CASE 2
DayName = “Saturday”
………
END SELECT
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
Select Case TextBox1.Text
Case 1 To 299
TextBox2.Text = TextBox1.Text * 1.5
Case 300 To 599
TextBox2.Text = TextBox1.Text * 3
Case Else
TextBox2.Text = TextBox1.Text * 4
End Select
End Sub
By: S. Hassan Adelyar
10 July 2010
VB.NET PROGRAMMING
64
Visual Basic .NET
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Select Case TextBox1.Text
Case 1 To 299
TextBox2.Text = TextBox1.Text * 1.5
Case 300 To 599
TextBox2.Text = 299 * 1.5 + (TextBox1.Text - 299) * 3
Case Else
TextBox2.Text = 299 * 1.5 + 599 * 3 + (TextBox1.Text - 599) * 4
End Select
End Sub
By: S. Hassan Adelyar
10 July 2010
65
VB.NET PROGRAMMING
Visual Basic .NET
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Button1.Click
Dim mydate As Date
mydate = TextBox1.Text
Dim month As Byte
month = mydate.Month
Select Case month
Case 1, 3, 5, 7, 8, 10, 12
MessageBox.Show(")" روز است31 این ماه
Case 4, 6, 9, 11
MessageBox.Show(")" روز است30 این ماه
Case 2
If mydate.Year Mod 4 = 0 Then
MessageBox.Show(")" روز است29 این ماه
Else
MessageBox.Show(")" روز است28 این ماه
End If
End Select
By: S. Hassan Adelyar
End Sub
VB.NET PROGRAMMING
66
(Loop Statements) دستورهای تکرار
10 July 2010
Visual Basic .NET
. از دستور های تکرار جهت اجرای تکراری یک یا چند سطر پروگرام استفاده می شود
:در ویژول بسیک دستور های ذیل به این منظور استفاده میشود
FOR……NEXT
DO……..LOOP
: شکل عمومي آن قرار ذیل است:For ….Next حلقه
For variable_name = Initial_value To final_value [Step i]
Statement(s)
Next
By: S. Hassan Adelyar
67
(Loop Statements) دستورهای تکرار
10 July 2010
Visual Basic .NET
VB.NET PROGRAMMING
DO….LOOP حلقه تکراری
:این حلقه دارای دو شکل عمومی ذیل میباشد
DO WHILE Condition
Statement(s)
LOOP
DO UNTIL Condition
Statement(s)
LOOP
By: S. Hassan Adelyar
VB.NET PROGRAMMING
68
(Loop Statements) دستورهای تکرار
10 July 2010
Visual Basic .NET
حلقه، جمالت داخل حلقه اجرا شود، اگرخواسته باشیم تا قبل از تست کردن شرط:نوت
DO…LOOP:را طور ذیل می نویسیم
DO
Statement(s)
LOOP WHILE Condition
DO
Statement(s)
LOOP UNTIL Condition
By: S. Hassan Adelyar
VB.NET PROGRAMMING
69
10 July 2010
Visual Basic .NET
: پروګرام ذیل فکتوریل یک عدد را محاسبه میکند
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
Dim number As Integer
Dim factorial As Double
number = InputBox("Enter a number: ")
factorial = 1
For i = 1 To number
factorial = factorial * i
Next
MessageBox.Show("Factorial of " & number & " is:" & vbCr &
factorial)
By: S. Hassan Adelyar
End Sub
10 July 2010
70
VB.NET PROGRAMMING
Visual Basic .NET
:For Each ……Next حلقه
.این حلقه برای دوران در عناصر غیر عددی استفاده میشود
For Each/Next Repetition Structure
For each grade in gradeArray
If grade < lowgrade then
Lowgrade = grade
End if
Next
Dim abc As TextBox
For Each abc In Me.Controls
By: S. Hassan Adelyar
10 July 2010
71
VB.NET PROGRAMMING
Visual Basic .NET
تابع Inputbox
این تابع پیغام معین ( تعین شده از قبل) را به فارمت یک باکس مکالماتي (Dialog
)Boxدر روی صفحه نمایش نشان داده و برای ورودی اطالعات توسط userانتظار
میکشد .اطالعات داخل شده میتواند قیمت متحول باشد.
شکل عمومی این تابع در ویژول بسیک قرار ذیل است:
Public Function InputBox ( ByVal Prompt As String, _ Optional
ByVal Title As String = "", _ Optional ByVal DefaultResponse As
String = "", _ Optional ByVal Xpos As Integer = -1, _ Optional
ByVal YPos As Integer = -1 ) As String
:Prompt این پارامتر اجباري بوده و عبارت از جمله است که در باکس نشان داده
میشود .طول این جمله میتواند تا 1024حرف باشد.براي نوشتن چندین جمله از توابع
) chr(13و ) chr(10نیز استفاده کرده میتوانیم.
:Title این پرامتر اختیاري بوده و عبارت از جمله میباشد که در قسمت عنوان (Title
By: S. Hassan Adelyar
) Barباکس نشان داده میشود.
VB.NET PROGRAMMING
72
10 July 2010
Visual Basic .NET
Private Sub Form1_Load(ByVal sender As System.Object, : مثال
ByVal e As System.EventArgs) Handles MyBase.Load
Dim
message, title, defaultValue As String
Dim myValue As Object
message = "Enter a value between 1 and 3"
title = "InputBox
Demo"
defaultValue = "1
myValue = InputBox(message,
title, defaultValue)
' If user has clicked Cancel, set myValue to
defaultValue
If myValue Is "" Then myValue = defaultValue
myValue = InputBox(message, title, defaultValue, 100, 100)
If
myValue Is "" Then myValue = defaultValue End SubEnd
Class Public Sub CreateMyForm()
Dim mydialog As New Form()
Dim button1 As New Button()
Dim button2 As New Button()
By: S. Hassan Adelyar
Dim lbldisplay As New Label
10 July 2010
VB.NET PROGRAMMING
73
Visual Basic .NET
MessageBox.Show() تابع
این تابع نیز پیغام را روی صفحهء نمایش نشان داده و به کلیک کردن یک دکمه انتظار
این تابع عدد تامی را برگشت میدهد که همان عدد نشان دهندهء دکمهء کلیک شده.میکشد
.است
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
MessageBox.Show("This method is used to display" & Chr(13) &
"messages on the screen")
End Sub
End Class
Public Class Form1
By: S. Hassan Adelyar
VB.NET PROGRAMMING
74
10 July 2010
Visual Basic .NET
را مشاهدهMessageBos.show وInputBox در مثال ذیل طرز کار توابع: نوت
.نمائید
Public class form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles Button1.Click
Dim prog As String
prog = InputBox("Select program to run (Excel / Word / Access /
Calculator)")
If prog = "Excel" Then
Shell("c:\program files\microsoft office\office10\excel.exe",
AppWinStyle.MaximizedFocu)
ElseIf prog = "Word" Then
Shell("c:\program files\microsoft
By: S. Hassan Adelyar
VB.NET PROGRAMMING
75
10 July 2010
Visual Basic .NET
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
Dim c As Byte
c=1
Dim prog As Object
abc:
c=c+1
prog = InputBox("Enter you Password")
If prog = "ab@_6s" Then
MessageBox.Show("Pssword accepted")
Else
By: S. Hassan Adelyar
MessageBox.Show("Wrong Password")
10 July 2010
76
Visual Basic .NET
VB.NET PROGRAMMING
:Close حادثه
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e
As System.Windows.Forms. FormClosingEventArgs) Handles
Me.FormClosing
If textBox1.Text = "" Then
MessageBox.Show("You must enter a name.", "Name Entry
Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
End Sub
By: S. Hassan Adelyar
10 July 2010
77
حادثه KeyPress
این حادثه در اثر فشار دادن کلید رخ میدهد که داراي کود اسکي تا 128را دشته باشد.
این حادثه نمیتواند حالت کلیدهاي تغیر دهنده ) (Modifier keysمانند ،Ctrl ،Altو
Shiftرا تعین نماید .درصورت محکم گرفتن یک کلید این حادثه به تکرار واقع میشود و
به سرعت که توسط سیستم عامل تعین میگردد.
حادثه KeyDown
این حادثه وقتي رخ میدهد که گلید در اول فشار داده شود .این حدثه حالت کلیدهاي ،Alt
،Ctrl By: S. Hassan Adelyarو Shiftرا تعین کرده میتواند.
VB.NET PROGRAMMING
Visual Basic .NET
حادثات صفحه کليد
حادثات صفحه کلید وقتي رخ میدهد که یک کلید ان فشار داده شود .هر آبجکت میتواند از
حادثات صفحه کلید استفاده نماید و آنرا اجرا کند.
VB.NET PROGRAMMING
78
10 July 2010
Visual Basic .NET
: مثال هاي ذیل حادثات صفحه کلید را نشان میدهد
Public Class Form1
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e
As System.Windows.Forms.KeyEventArgs) Handles
TextBox1.KeyDown
TextBox2.Text = e.KeyCode
TextBox3.Text = e.KeyData
TextBox4.Text = e.KeyValue
TextBox5.Text = Chr(e.KeyValue)
TextBox6.Text = e.Shift
TextBox7.Text = e.Control
TextBox8.Text = e.Alt
By: S. Hassan Adelyar
TextBox9.Text = e.GetType.FullName
10 July 2010
VB.NET PROGRAMMING
79
Visual Basic .NET
Public Class Form4
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e
As System.Windows.Forms.KeyEventArgs) Handles
TextBox1.KeyDown
TextBox2.Text = DateTime.Today
TextBox3.Text = DateTime.Now
TextBox4.Text = DateAndTime.Weekday(Today)
TextBox5.Text = DateAndTime.WeekdayName(5)
TextBox6.Text =
DateAndTime.WeekdayName(Weekday(Today))
End Sub
End Class
By: S. Hassan Adelyar
10 July 2010
VB.NET PROGRAMMING
80
Visual Basic .NET
که بااليLabel در، هر حرف که از صفحه کلید فشار داده شود، در مثال ذیل: مثال
:همین فورم است نشان داده میشود
Public Class Form1
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
Label1.Text = "Key pressed: " & e.KeyChar
End Sub
End Class
: مثال ذیل کود اسکي کلید فشار داده شده را نشان میدهد
Public Class Form1
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As
By: S. Hassan Adelyar
System.Windows.Forms.KeyPressEventArgs)
Handles Me.KeyPress
10 July 2010
VB.NET PROGRAMMING
81
Visual Basic .NET
. این حادثه در اثر رها شدن یک کلید رخ میدهد:Keyup حادثه
Public Class Form1
Private Sub TextBox1_KeyUp(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyUp
If e.KeyCode = Keys.F1 Then
Help.ShowPopup(TextBox1, "Enter your first name", New
Point(TextBox1.Right, Me.TextBox1.Bottom))
End If
End Sub
End Class
By: S. Hassan Adelyar
Private Sub TextBox1_KeyDown(ByVal
sender As Object, ByVal e
10 July 2010
VB.NET PROGRAMMING
82
Visual Basic .NET
Private Sub textBox1_KeyPress(sender As Object, e As
System.Windows.Forms.KeyPressEventArgs)Handles
textBox1.KeyPress
If nonNumberEntered = True Then
e.Handled = True
End If
End Sub
End Class
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
Button2.PerformClick()
By: S. Hassan Adelyar
End Sub
10 July 2010
Visual Basic .NET
با استفاده از خاصیت KeyCharمیتوانیم از کلید فشار داده شده در اثنای اجرای
پروګرام نمونه بګیریم و همچنین فشاردادن کلید در شرایط خاص تغیر دهیم .مثال میتوانیم
توسط این خاصیت فشاردادن کلید های غیرعددی را در اثنای داخل نمودن کود ZIPغیر
فعال سازیم یا مثال تمام حروف را به کالن تبدیل کنیم.
مثال :در مثال ذیل به کمک خاصیت KeyCharدیده میشود که آیا کلید Enterفشار داده
شده است و یا خیر؟ قیمت خاصیت Handledبه Trueمساوی ګردیده است.
Imports System
Imports System.Windows.Forms
Public Class Form1
Inherits Form
)(Public Sub New
)(Dim tb As New TextBox
Me.Controls.Add(tb) By: S. Hassan Adelyar
VB.NET PROGRAMMING
83
10 July 2010
84
حادثه MouseEnter
این حادثه وقتي رخ میدهد که موشر موس به ساحه یک آبجکت داخل شود.
By: S. Hassan Adelyar
حادثه MouseMove
VB.NET PROGRAMMING
Visual Basic .NET
حادثات موس )(Mouse Events
حادثات موس هم در اثر فشار دادن دکمه هاي موس رخ میدهد .هر ابجکت میتواند این
حادثات را استفاده نماید .کالس MouseEventArgsمعلومات راجع به حادثه موس را
دارد .این معلومات از قبیل کوردینات xو yموشر موس ،کدام دکمه فشار داده شده است،
چند بار دکمه فشار داده شده است ،ویا چند بار چرخ موس دوران داده شده است (دکمه
سومي موس).
بعضي حادثات موس قرار ذیل است:
10 July 2010
85
Visual Basic .NET
:پروگراو ذیل با استفاده از حادثات موس باالي فورم رسامي میکند
VB.NET PROGRAMMING
Public Class FrmPainter
Inherits System.Windows.Forms.Form
Dim shouldPaint As Boolean = False
Private Sub FrmPainter_MouseMove( _
ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles MyBase.MouseMove
If shouldPaint Then
Dim graphic As Graphics = CreateGraphics()
graphic.FillEllipse _
By: S. Hassan Adelyar
10 July 2010
VB.NET PROGRAMMING
86
Visual Basic .NET
Public Class frmpainter
Inherits System.Windows.Forms.Form
Dim shouldPaint As Boolean = False
Private Sub frmpainter_MouseDown(ByVal sender As Object, ByVal
e As System.Windows.Forms.MouseEventArgs) Handles
Me.MouseDown
shouldPaint = True
Dim graphic As Graphics = CreateGraphics()
graphic.DrawRectangle(Pens.Aqua, e.X, e.Y, e.X, e.X)
graphic.DrawLine(Pens.Blue, e.X, e.Y, 80, 120)
End Sub
End Class
By: S. Hassan Adelyar
10 July 2010
87
VB.NET PROGRAMMING
Visual Basic .NET
By: S. Hassan Adelyar
10 July 2010
88
VB.NET PROGRAMMING
Visual Basic .NET
By: S. Hassan Adelyar
10 July 2010
89
VB.NET PROGRAMMING
Visual Basic .NET
By: S. Hassan Adelyar
10 July 2010
90
VB.NET PROGRAMMING
Visual Basic .NET
By: S. Hassan Adelyar
10 July 2010
91
VB.NET PROGRAMMING
Visual Basic .NET
By: S. Hassan Adelyar
10 July 2010
92
VB.NET PROGRAMMING
Visual Basic .NET
By: S. Hassan Adelyar
10 July 2010
93
VB.NET PROGRAMMING
Visual Basic .NET
By: S. Hassan Adelyar
10 July 2010
94
VB.NET PROGRAMMING
Visual Basic .NET
By: S. Hassan Adelyar
10 July 2010
95
VB.NET PROGRAMMING
Visual Basic .NET
By: S. Hassan Adelyar
10 July 2010
96
VB.NET PROGRAMMING
Visual Basic .NET
By: S. Hassan Adelyar
10 July 2010
97
VB.NET PROGRAMMING
Visual Basic .NET
By: S. Hassan Adelyar
VB.NET PROGRAMMING
98
Programming in VB.NET
10 July 2010
Visual Basic .NET
Variable
Names in computer main memory.
Can hold only one value at a time.
Variable declaration:
You can use DIM, PRIVATE, PUBLIC, or STATIC keywords.
Use DIM inside a procedure.
Use DIM or PRIVATE inside a class or module.
Use PUBLIC inside a module to create global variable that can be
accessed from the current project.
Use STATIC to declare static variables.
DIM var_name,[var_name2,…] AS var_type
Var_name can be up to 255 characters and can’t be VB keywords.
By: S. Hassan Adelyar
10 July 2010
99
Visual Basic .NET
VB.NET PROGRAMMING
Option EXPLICIT
OPTION EXPLICIT ON
OPTION EXPLICIT OFF
By: S. Hassan Adelyar
10 July 2010
100
Visual Basic .NET
VB.NET PROGRAMMING
Var_type can be:
Byte
Integer
Long
Double
Single
String
Boolean
Date
Object
Variant
By: S. Hassan Adelyar
10 July 2010
101
Visual Basic .NET
By: S. Hassan Adelyar
VB.NET PROGRAMMING
ثابت )(Constant
ثابت عبارت از نوع Dataاست که قیمت ان در اثناي اجراي پروگرام
تغیر نمیکند .در ویژول بسیک ثابت را طور ذیل تعریف کرده میتوانیم:
Const pi AS DOUBLE = 3.1415926
ثابت نظر به متحول داراي خوبي هاي ذیل میباشد:
قیمت ثابت بعد از تعریف آن تغیر نمیکند.
با تغیر دادن قیمت آن در تمام قسمت هاي پروگرام ،قیمت آن تغیر
گردیده و اینکار باعث سهولت در تغیر قیمت ها میشود.
ثابت نظر به متحول به سرعت و آساني توسط کمپیوتر پراسس
میشود.
10 July 2010
102
Visual Basic .NET
VB.NET PROGRAMMING
امتحان نمودن نوع متحول :برای معلوم نمودن نوع متحول از دو تابع
ذیل استفاده کرده می توانیم:
) ( :VarTypeجواب عددی که همان عدد نظربه نوع متحول فرق
میکند.
) ( : TypeNameجواب stringکه همان stringنوع متحول را نشان
میدهد.
Vbinteger
2
Vblong
3
Vbsingle
4
Vbdate
7
Vbstring
8
By: S. Hassan Adelyar
10 July 2010
103
VB.NET PROGRAMMING
Visual Basic .NET
(Conditional Statements) دستور های شرطی
: از دستور های ذیل استفاده میشود، برای اجرای مشروط یک یا چند سطر پروگرام
IF ……..THEN
IF……...THEN…….ELSE
SELECT……CASE
: قرار ذیل استIF….THEN شکل عمومی
IF Condition THEN Statement
:همچنین این دستور را طور ذیل نیز استفاده کرده میتوانیم
IF Condition THEN
Statement(s)
END IF
By: S. Hassan Adelyar
10 July 2010
104
VB.NET PROGRAMMING
Visual Basic .NET
: قرار ذیل استIF….THEN…..ELSE شکل عمومی
IF Condition-1 THEN
Statement(s)
ELSEIF Condition-2 THEN
Statement(s)
…………..
…………..
ELSE
Statement(s)
END IF
By: S. Hassan Adelyar
10 July 2010
105
VB.NET PROGRAMMING
Visual Basic .NET
: قرار ذیل استSELECT…..CASE شکل عمومی دستور
SELECT CASE Expression
CASE Value-1
Statement(s)
CASE Value-2
Statement(s)
……..
……..
CASE ELSE
Statement(s)
END SELECT
By: S. Hassan Adelyar
10 July 2010
106
Visual Basic .NET
VB.NET PROGRAMMING
Example:
SELECT CASE Weekday(date)
CASE 1
DayName = “Monday”
CASE 2
DayName = “Saturday”
………
………
END SELECT
By: S. Hassan Adelyar
10 July 2010
107
VB.NET PROGRAMMING
Visual Basic .NET
(Loop Statements) دستورهای تکرار
از دستور های تکرار جهت اجرای تکراری یک یا چند سطر پروگرام
در ویژول بسیک دستور های ذیل به این منظور استفاده.استفاده می شود
:میشود
FOR……NEXT
DO……..LOOP
: شکل عمومي آن قرار ذیل است:For ….Next حلقه
For variable_name = Initial_value To final_value [Step i]
Statement(s)
Next
By: S. Hassan Adelyar
10 July 2010
VB.NET PROGRAMMING
108
Visual Basic .NET
Dim demoNum As Single
Dim c As Integer
Do
For i As Integer = 1 To 10000000
demoNum = Int(Rnd() * 100)
c=c+1
Select Case demoNum
Case 7 : Exit For
Case 29 : Exit Do
Case 54 : Exit Sub
End Select
Next i
Loop
MsgBox(c)
By: S. Hassan Adelyar
10 July 2010
109
Visual Basic .NET
VB.NET PROGRAMMING
For Each/Next Repetition Structure
It can be used for iterating through the values in a data
structure, such as an array.
Example:
For each grade in gradeArray
If grade < lowgrade then
Lowgrade = grade
End if
next
By: S. Hassan Adelyar
10 July 2010
110
VB.NET PROGRAMMING
Visual Basic .NET
فورم ذیل در صورت کار میکند که باالي فورم کنترول هاي دیگر غیر از
: نباشدTextBox
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
Dim abc As TextBox
For Each abc In Me.Controls
abc.Enabled = False
Next abc
End Sub
By: S. Hassan Adelyar
10 July 2010
111
VB.NET PROGRAMMING
Visual Basic .NET
: میسازدDisable کود ذیل تمام کنترول ها را
Private Sub Button1_Click(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Button1.Click
Dim abc As Object
For Each abc In Me.Controls
abc.enabled = False
Next abc
End Sub
End Class
By: S. Hassan Adelyar
10 July 2010
112
VB.NET PROGRAMMING
Visual Basic .NET
DO….LOOP حلقه تکراری
:این حلقه دارای دو شکل عمومی ذیل میباشد
DO WHILE Condition
Statement(s)
LOOP
DO UNTIL Condition
Statement(s)
LOOP
By: S. Hassan Adelyar
10 July 2010
113
Visual Basic .NET
VB.NET PROGRAMMING
نوت :اگرخواسته باشیم تا قبل از تست کردن شرط ،جمالت داخل حلقه
اجرا شود ،حلقه DO…LOOPرا طور ذیل می نویسیم:
DO
)Statement(s
LOOP WHILE Condition
DO
)Statement(s
LOOP UNTIL Condition
نوت :
– بعضي اوقات ضرورت مي افتد تا در صورت تکمیل شدن یک شرط
قبل از تکمیل حلقه For …Nextویا Do … Whileخارج شویم .در
کردهBy: S.میتوانیم:
اینصورت از دستور Exitاستفاده
Hassan Adelyar
10 July 2010
114
VB.NET PROGRAMMING
Visual Basic .NET
While condition
[ statements ]
[ Exit While ]
[ statements ]
End While
Dim counter As Integer = 0
While counter < 20
counter += 1
End While
MsgBox("While loop ran " & counter)
By: S. Hassan Adelyar