این آموزش در زمان های قدیم نوشته و در حال حاضر آرشیو شده. لذا توضیح و آموزش تخصصی ویژوال بیسیک دات نت به دلیل اینکه دیگه یادم رفته مقدور نیست. من در حال حاضر به طور تخصصی روی زبون سی شارپ کار میکنم، توصیه من به شما هم همین زبونه (:

  خوب! با یه تاخیر کوچولو میریم که بریم سراغ قسمت چهارم آموزش برنامه نویسی. طبق معمول هم

اول از همه میریم که تمرینامونو حل کنیم. برای تمرین اول گفته آمد! :

 ۱- برنامه ای بنویسید که دارای یک جعبه متنی و یک دکمه باشد. پس از اینکه روی دکمه کلیک شد اگر متن داخل تکست باکس "خروج" باشد برنامه بسته شود و اگر "خروج" نباشد (هر چیزی به غیر از خروج) متن داخل تکست باکس به کاربر پیام داده شود

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        If Textbox1.Text = "خروج" Then
            End
        Else
            MsgBox(Textbox1.Text)
        End If

    End Sub

  ۲-برنامه ای بنویسید که کاربر هر عددی بین 1 تا 5 را به صورت عددی در تکست باکس وارد کند ؛ پس از کلیک روی دکمه همان عدد به صورت حروف به کاربر پیام داده شود

  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim MyText As String

        Select Case Val(Textbox1.Text)
            Case 1
                MyText = "یک"
            Case 2
                MyText = "دو"
            Case 3
                MyText = "سه"
            Case 4
                MyText = "چهار"
            Case 5
                MyText = "پنج"
        End Select

        MsgBox(MyText)

    End Sub

کد ها و توابع پرکاربرد


خوب! حالا میریم که شما رو با چند تا تابع پرکاربرد که مطمعنا برای ساخت برنامه دلخواهتون بهش نیاز دارید آشنا کنم

 ۱- تابع Mid

اگه بخواید که بخشی از یک متن رو (مثلا از حرف سوم تا دوازده حرف بعد) بگیرید باید از این تابع استفاده کنید. شکل کلی تابع:

Mid(String, Start, [Length])

به عنوان مثال:

 Dim matn As String = "This is my application and i love it"
 Dim ye_tike As String = Mid(matn, 6, 5)
 MsgBox(ye_tike)

این کد رو اینطوری هم میشه نوشت:

 Dim matn As String = "This is my application and i love it"
 MsgBox(Mid(matn, 6, 5))

که خروجی تابع میشه: is my

 ۲- توابع مربوط به نرم افزار های چند فرمه

اول از همه بگم چطور میشه فرم جدید ساخت. برای ساخت چند فرم ، در منوی بالا ویژوال استودیو Project رو بزنین بعد سر Add Windows Form کلیک کنید ؛ یه اسم براش انتخاب کنید مثلا frm_Settings و دام دارادام دارا دام! فرم جدید آمادس!

frm_Setting.Hide() پنهان کردن فرم مورد نظر
frm_Settings.Show() نمایش فرم مورد نظر
frm_Settings.Close() بستن فرم مورد نظر
frm_Settings.ShowDialog() نمایش فرم مورد نظر
Me.Hide() پنهان کردم فرم فعلی
Me.Show() نمایش فرم فعلی
Me.Close() بستن فرم فعلی

 حالا ممکنه بپرسید تفاوت کد End  و Me.Close در چیه؟

  • اولا که کد End کل برنامه رو میبنده بی هیچ چون و چرایی! ولی کد Me.Close رویداد Form Closing فرم رو اجرا میکنه. یعنی میشه قبل از بسته شدن برنامه از کاربر پرسید که واقعا میخواد برنامه رو ببنده یا نه؟ (مطمعنم یه عالمه از این جور برنامه ها رو تا به حال دیدید)
  • اگه شما از کد Me.Close استفاده کنید ممکنه برنامه بسته نشه (چون ممکنه فرم های دیگه ای در حال اجرا باشن)

 میتونم ذهنتون رو بخونم! میخواید بپرسید تفاوت Me.Hide و Me.Close چیه درسته؟ چی؟ نه؟ خوب عیب نداره به هر حال به این سوال جواب میدم!

  • Me.Hide برنامه رو فقط غیب میکنه. یعنی فرم هنوز در حافظه سیستم قرار داره فقط نشون داده نمیشه (مثل کاری که خیلی از ویروس ها میکنن ؛ فقط امیدوارم که شما از این علم به درستی استفاده کنید و مزاحم اطلاعات مردم و حریم خصوصی شون نشین) ؛ در حالی که Me.Close فرم رو کاملا میبنده و همه داده های موقت فرم رو پاک میکنه. مثلا مقداری که در هنگام اجرای کد ها به یه متغیر داده میشه. یا مثلا چک باکس هایی که کاربر تیک دارشون کرده

سوال سوم! شاید بخواید بدونید چرا ما وقتی از فرم فعلی استفاده میکنیم نباید اسم فرم رو بنویسیم و بجاش باید بنویسیم Me! مثلا اگه اسم فرم اولتون Form1 باشه ؛ هیچ کجای کد های این فرم نباید Form1 بنویسید. اگر هم بنویسید با این خطای ویژوال استودیو مواجه میشید: فرم یک نمیتواند به خودش ارجاع داده شود! به جایش از عبارت Me استفاده کنید.

سوال چهارم: فرق Show با ShowDialog چیه؟ تنها تفاوت ShowDialog با Show اینه که اگه فرمی به صورت دیالوگ باز بشه، تا زمانی که بسته نشه نمیشه با فرمای دیگه کار کرد.

 ۳- ورود به لینک

شاید کد های بخش قبل یکم حالتون رو به هم زده باشه! این هم زنگ تفریح:

Process.Start("http://aryan-pc.blog.ir")

این کد دقیقا همون کدیه که نرم افزار کد ساز وبلاگ برای ورود به «پیش نمایش» استفاده میکنه

 ۴- پخش صدا با فرمت Wav

کلا فضانام My خیلی توابع و زیرمجموعه های باحالی داره. یکیش Audio ئه. کد پایین رو نگاه کن:

My.Computer.Audio.Play("E:\Techno.wav")

 بازی آلوین و جادوی سیاه رو تا حالا بازی کردین؟ الان دیگه فهمیدین وقتی کلیک میکنید و صدای طبر میاد از کجا میاد! یا مثلا وقتی که آلوین راه میره...

 ۵- تابع Replace

این تابع میگرده داخل یه رشته ؛ یه چیز رو با یه چیز دیگه عوض میکنه! (از قیافه هر کلمه ای خوشتون نیومد بگردید با این کد عوضش کنید!)

Textbox1.Text = Replace(Textbo1.Text, "god", "خدا")

اگه کد بالا رو داخل رویداد کلیک یه دکمه بنویسید و سرش کلیک کنید میگرده همه "god" های متن رو تبدیل میکنه به "خدا". اگر هم تو متن "god" وجود نداشته باشه هیچ اتفاقی نمیفته.

ای ناقلا ها. فهمیدید چطوری نرم افزار ویرایشگر متن پارسی کلمات رو با هم عوض میکنه؟

 ۶- کنترل ProgressBar

ما تا الان با کنترل های دکمه و جعبه متنی و چند تا از ویژگی هاشون آشنا شدیم. یه کنترل هم هست به اسم ProgressBar. حتما برنامه هایی رو دیدید که وقتی دارن یه کاری انجام میدن یه میله میاد پر میشه (مثلا موقع نصب برنامه ها). این همونه!

یه دکمه و یه Progressbar بسازید و این کد رو داخل رویداد کلیک دکمه بنویسید:

ProgressBar1.Value = 65

 ۷- کنترل Timer

این کنترل آخرشه! مطمعنم ازش خوشتون میاد! فقط حواستون باشه که این کنترل جز کنترل های خیلی خیلی خاص ویندوز و دات نت فریم ورکه. تا اونجایی که بعضی از برنامه نویس های مایکروسافت توصیه کردن که در برنامه تون حداکثر دو تا تایمر استفاده کنید.

 بعد اینکه برای فرمتون تایمر ساختید ؛ ویژگی هاش رو نگاه کنید. یکی از ویژگی هاش Enabled هست که به طور خودکار روی False ست شده. اگه True کنیدش تایمر بعد از اجرای فرم؛ کد های داخل رویداد Tick خودش رو پشت سر هم اجرا میکنه. حالا سوال اینجاست! هر چند ثانیه کدا رو اجرا میکنه؟ پاسخ بستگی به مقدار Interval داره که از ویژگی های تایمره. Interval تایمر؛ بر حسب میلی ثانیست یعنی هر 1000 تاش میشه یک ثانیه. و اگه شما اینتروالش رو روی 1 بذارید ؛ کد شما در هر یک هزارم ثانیه اجرا میشه!

برای مثال یک Label به نام Label1  و یا تایمر با نام و نام خانوداگی(!) Timer1 بسازید و اینتروالش رو بذارید روی 500 یعنی نیم ثانیه. یادتون نره Enabled تایمر رو True کنید. قبلش هم برای رفتگانتون یه فاتحه بخونید که بدونید چقدر این کنترل نازپروردست. این هم کل کدهای فرم:

Public Class Form1

    Dim MyNumber As Integer = 0

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        MyNumber = MyNumber + 1
        Label1.Text = MyNumber
    End Sub

End Class

همون طور که ملاحظه میکنید هی یه دونه یه دونه عدد میره بالا!

 ۸- کد نویسی جعبه پیام

در آموزش های قبلی در مورد Msgbox گفتیم که میتونیم جعبه پیام هایی با دکمه های مختلف من جمله YesNoCancel بذاریم. حالا میخوایم ببینیم کاربر روی کدوم دکمه کلیک کرده و برای هر کدوم کد نویسی کنیم. دو مثال زیر راهنمای ما برای دست یابی به این مقصود است!

   Dim natije As DialogResult = MsgBox("به سه راهی رسیدی دوست من", vbYesNoCancel, "سه راهی")
   Select Case natije
       Case vbYes
           MsgBox("گفت اره")
       Case vbNo
           MsgBox("گفت نه")
       Case vbCancel
           MsgBox("فرار کرد :|")
   End Select

و یا اینکه اصلا متغیر تعریف نکنید:

   Select Case MsgBox("به سه راهی رسیدی دوست من", vbYesNoCancel, "سه راهی")
       Case vbYes
           MsgBox("گفت اره")
       Case vbNo
           MsgBox("گفت نه")
       Case vbCancel
           MsgBox("فرار کرد :|")
   End Select