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