2014年11月4日 星期二

VB.NET Class.10 ()

練習:
---------------------------------------------------------------------------

---------------------------------------------------------------------------
Public Class Form1
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Label1.Text = Now
    End Sub
---------------------------------------------------------------------------
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        PictureBox1.Visible = False
    End Sub
---------------------------------------------------------------------------
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        PictureBox1.Visible = True
    End Sub
---------------------------------------------------------------------------
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        PictureBox1.Visible = Not (PictureBox1.Visible)
    End Sub
---------------------------------------------------------------------------
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Label1.BackColor = Color.FromArgb(255, 0, 0)
        RadioButton1.Checked = True
    End Sub
---------------------------------------------------------------------------
    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Label1.BackColor = Color.FromArgb(0, 255, 0)
        RadioButton2.Checked = True
    End Sub
---------------------------------------------------------------------------
    Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        Label1.BackColor = Color.FromArgb(0, 0, 255)
        RadioButton3.Checked = True
    End Sub
---------------------------------------------------------------------------
    Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
        Label1.BackColor = Color.FromArgb(255, 0, 0)
    End Sub
---------------------------------------------------------------------------
    Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
        Label1.BackColor = Color.FromArgb(0, 255, 0)
    End Sub
---------------------------------------------------------------------------
    Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged
        Label1.BackColor = Color.FromArgb(0, 0, 255)
    End Sub
---------------------------------------------------------------------------
    Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
        Label2.Text = "您的興趣為:"
        Dim gap As String = " "
        If CheckBox1.Checked = True Then
            Label2.Text = Label2.Text & gap & CheckBox1.Text
            gap = ", "
        End If
        If CheckBox2.Checked = True Then
            Label2.Text = Label2.Text & gap & CheckBox2.Text
            gap = ", "
        End If
        If CheckBox3.Checked = True Then
            Label2.Text = Label2.Text & gap & CheckBox3.Text
            gap = ", "
        End If
        If CheckBox4.Checked = True Then
            Label2.Text = Label2.Text & gap & CheckBox4.Text
            gap = ", "
        End If
        If CheckBox5.Checked = True Then
            Label2.Text = Label2.Text & gap & CheckBox5.Text
            gap = ", "
        End If
        If CheckBox6.Checked = True Then
            Label2.Text = Label2.Text & gap & CheckBox6.Text
            gap = ", "
        End If
    End Sub
---------------------------------------------------------------------------
    Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click
        Label2.Text = "您的興趣為:"
        If CheckBox1.Checked = True Then
            Label2.Text = Label2.Text & CheckBox1.Text & ", "
        End If
        If CheckBox2.Checked = True Then
            Label2.Text = Label2.Text & CheckBox2.Text & ", "
        End If
        If CheckBox3.Checked = True Then
            Label2.Text = Label2.Text & CheckBox3.Text & ", "
        End If
        If CheckBox4.Checked = True Then
            Label2.Text = Label2.Text & CheckBox4.Text & ", "
        End If
        If CheckBox5.Checked = True Then
            Label2.Text = Label2.Text & CheckBox5.Text & ", "
        End If
        If CheckBox6.Checked = True Then
            Label2.Text = Label2.Text & CheckBox6.Text & ", "
        End If
        Label2.Text = Label2.Text.Substring(0, Label2.Text.Length - 2)
    End Sub
End Class
---------------------------------------------------------------------------


2014年10月30日 星期四

VB.NET 物件導向 Class.3 (建構子+類別陣列+繼承)

建構子:
-----------------------------------------------------------------------------
Public Class Form1

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

        Dim car1 As New Car

    End Sub
End Class
==============================================

Class Car
    Dim pNum As Integer
    Dim cName As String
    Dim gas As Double

    //建構子
    Sub New()
        pNum = 2266
        cName = "Masalaty"
        gas = 12000
    End Sub

End Class
-----------------------------------------------------------------------------

類別陣列:
-----------------------------------------------------------------------------
Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim cars(2) As Car
        Dim pN As Integer
        Dim cN As String
        Dim g As Double
        Dim i As Integer
-----------------------------------------------------------------------------
        For i = 1 To cars.Length

            //分別New出來
            cars(i - 1) = New Car

            MessageBox.Show("請輸入第 " & i & " 輛車資料")
            pN = InputBox("輸入車牌")
            cN = InputBox("輸入車款")
            g = InputBox("輸入排氣量")
            cars(i - 1).setData(pN, cN, g)
        Next
-----------------------------------------------------------------------------
        For i = 1 To cars.Length
            cars(i - 1).showData()
        Next

    End Sub
End Class
==============================================
Class Car
    Dim pNum As Integer
    Dim cName As String
    Dim gas As Double
-----------------------------------------------------------------------------
    Sub setData(pN, cN, g)
        pNum = pN
        cName = cN
        gas = g
    End Sub
-----------------------------------------------------------------------------
    Sub showData()
        MessageBox.Show("車牌號碼:" & pNum & vbCr &
                        "車款:" & cName & vbCr &
                        "排氣量:" & gas)
    End Sub
End Class
-----------------------------------------------------------------------------

繼承:
-----------------------------------------------------------------------------
Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim car1 As New Car
        Dim pN As Integer
        Dim cN As String
        Dim g As Double
-----------------------------------------------------------------------------
        MessageBox.Show("請輸入汽車資料")
        pN = InputBox("輸入車牌")
        cN = InputBox("輸入車款")
        g = InputBox("輸入排氣量")
        car1.setData(pN, cN, g)
        car1.showData()
-----------------------------------------------------------------------------
        Dim racCar1 As New racingCar
        MessageBox.Show("請輸入賽車資料")
        pN = InputBox("輸入車牌")
        cN = InputBox("輸入車款")
        g = InputBox("輸入排氣量")

        '即使類別中沒有任何方法仍能使用父類別的方法
        racCar1.setData(pN, cN, g)
        racCar1.showData()
-----------------------------------------------------------------------------
        Dim racCar2 As New racingCar
        Dim wind As Integer
        MessageBox.Show("請輸入賽車資料")
        pN = InputBox("輸入車牌")
        cN = InputBox("輸入車款")
        g = InputBox("輸入排氣量")
        wind = InputBox("輸入風阻係數")

        racCar2.setData(pN, cN, g)
        racCar2.setWind(wind)
        racCar2.showData()
        racCar2.showInfo()

    End Sub
End Class
==============================================

Class Car
    Dim pNum As Integer
    Dim cName As String
    Dim gas As Double
-----------------------------------------------------------------------------
    Sub setData(pN, cN, g)
        pNum = pN
        cName = cN
        gas = g
    End Sub
-----------------------------------------------------------------------------
    Sub showData()
        MessageBox.Show("車牌號碼:" & pNum & vbCr &
                        "車款:" & cName & vbCr &
                        "排氣量:" & gas)
    End Sub

End Class
==============================================
Class racingCar
    Inherits Car              //一定要換行
    Dim wind As Integer
    Sub setWind(w)
        wind = w
    End Sub
-----------------------------------------------------------------------------
    Sub showInfo()
        MessageBox.Show("風阻係數為:" & wind)
    End Sub
End Class
-----------------------------------------------------------------------------



2014年10月28日 星期二

VB.NET 物件導向 Class.2 (類別安全性+多型+迴圈)

類別基本練習:類別安全性
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
Public Class Form1

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

        Dim car1 As New Car
        Dim pN As Integer = InputBox("輸入車牌")
        Dim cN As String = InputBox("輸入車款")
        Dim g As Double = InputBox("輸入排氣量")

        If car1.setData(pN, cN, g) = True Then       //先帶入值檢驗是否合法
            car1.Car(pN, cN, g)                                  //合法就帶入值
            car1.show()                                               //並秀出來
        Else
            MessageBox.Show("輸入錯誤請重新執行")
        End If

    End Sub
End Class
===================================================

Class Car
    Dim pNum As Integer
    Dim cName As String
    Dim gas As Integer
----------------------------------------------------------------------------------------
//帶入檢驗合格的值
    Sub Car(pN, cN, g)
        pNum = pN
        cName = cN
        gas = g
    End Sub
----------------------------------------------------------------------------------------
//帶入值檢驗是否合格
    Function setData(pN, cN, g)
        Dim result As Boolean = True
        If g < 0 Then
            result = False
        End If
        Return result
    End Function
----------------------------------------------------------------------------------------
//內呼叫方法
    Sub show()
        ShowData()
    End Sub
----------------------------------------------------------------------------------------
    Private Sub ShowData()
        MessageBox.Show("車牌號碼:" & pNum & vbCr &
                        "車款:" & cName & vbCr &
                        "排氣量:" & gas)
    End Sub
End Class
----------------------------------------------------------------------------------------

多型:
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim car1 As New Car
        Dim pN As Integer = InputBox("輸入車牌")
        Dim cN As String = InputBox("輸入車款")
        Dim g As Double = InputBox("輸入排氣量")
----------------------------------------------------------------------------------------
//全部設定
        car1.setData(pN, cN, g)
        car1.showData()
----------------------------------------------------------------------------------------
//只改車牌
        pN = InputBox("輸入車牌")
        car1.setData(pN)
        car1.showData()
----------------------------------------------------------------------------------------
//只改車款&排氣量
        cN = InputBox("輸入車款")
        g = InputBox("輸入排氣量")
        car1.setData(cN, g)
        car1.showData()

    End Sub
End Class
==========================================================

Class Car
    Dim pNum As Integer
    Dim cName As String
    Dim gas As Integer
----------------------------------------------------------------------------------------
//方法相同傳入值不同有不同處理方法
    Sub setData(pN)
        pNum = pN
    End Sub
----------------------------------------------------------------------------------------
    Sub setData(cN, g)
        cName = cN
        gas = g
    End Sub
----------------------------------------------------------------------------------------
    Sub setData(pN, cN, g)
        pNum = pN
        cName = cN
        gas = g
    End Sub
----------------------------------------------------------------------------------------
    Sub showData()
        MessageBox.Show("車牌號碼:" & pNum & vbCr &
                        "車款:" & cName & vbCr &
                        "排氣量:" & gas)
    End Sub

End Class
----------------------------------------------------------------------------------------

迴圈:
----------------------------------------------------------------------------------------
Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim car1 As New Car
        Dim pN As Integer
        Dim cN As String
        Dim g As Double
        Dim i As Integer
----------------------------------------------------------------------------------------
//就只是迴圈
        For i = 1 To 5
            MessageBox.Show("請輸入第 " & i & " 輛車資料")
            pN = InputBox("輸入車牌")
            cN = InputBox("輸入車款")
            g = InputBox("輸入排氣量")
            If g < 0 Then
                i -= 1
                Continue For
            Else
                car1.setData(pN, cN, g)
                car1.showData()
            End If
        Next
----------------------------------------------------------------------------------------
    End Sub
End Class
====================================================

Class Car
    Dim pNum As Integer
    Dim cName As String
    Dim gas As Double
----------------------------------------------------------------------------------------
    Sub setData(pN, cN, g)
        pNum = pN
        cName = cN
        gas = g
    End Sub
----------------------------------------------------------------------------------------
    Sub showData()
        MessageBox.Show("車牌號碼:" & pNum & vbCr &
                        "車款:" & cName & vbCr &
                        "排氣量:" & gas)
    End Sub

End Class
----------------------------------------------------------------------------------------


2014年10月23日 星期四

VB.NET Class.7 (登入系統 + 物件導向 Class.1)

練習一:登入系統
---------------------------------------------------------------------------------
登入成功畫面

登入失敗畫面
---------------------------------------------------------------------------------
Public Class Form1

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

        //預設可登入帳號密碼
        Dim account As String = "ABC"
        Dim password As String = "abc123"

        Dim userAccount As String
        Dim userPassword As String
        
        //分別取出 TextBox 中的值並去除前後多餘的空格
        userAccount = TextBox1.Text.Trim
        userPassword = TextBox2.Text.Trim

        //分別把取出的值轉成需要的大小寫
        userAccount = userAccount.ToUpper
        userPassword = userPassword.ToLower

        //判斷帳號密碼是否相同
        If userAccount = account And userPassword = password Then
            MessageBox.Show("歡迎進入本系統")
        Else
            Label3.Text = "帳號或密碼輸入錯誤,請重新輸入"
        End If

    End Sub
End Class
========================================================




物件導向 Class.1
---------------------------------------------------------------------------------
執行結果
---------------------------------------------------------------------------------
Public Class Form1

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

        Dim car1 As New Car
        car1.pNum = 9999
        car1.cName = "Toyota"
        car1.ccolor = "Red"
        car1.gas = 3000.0

        Label1.Text = car1.pNum & vbCr & car1.cName & vbCr & car1.ccolor & vbCr & car1.gas
        car1.showData()

    End Sub
End Class
---------------------------------------------------------------------------------
 //新類別
Class Car

 //新類別變數
    Public pNum As Integer
    Public cName As String
    Public ccolor As String
    Public gas As Double

 //新類別方法
    Public Sub showData()
        MessageBox.Show(pNum & vbCr & cName & vbCr & ccolor & vbCr & gas)
    End Sub
End


---------------------------------------------------------------------------------

2014年10月21日 星期二

VB.NET Class.6 (亂數)

練習一:取10個亂數印出並顯示大於60的個數
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Label1.Text = ""
        Dim a(9) As Double
        Dim i As Integer
        Dim x As Integer = 0

        Randomize()              //有這行才能夠使 Rnd()真正實現亂數

        For i = 0 To a.Length - 1
            a(i) = Math.Floor(Rnd() * 100) + 1                  //Math.Floor() 為絕對值取法
                                                                                         //Rnd() 為亂數取值 0 ~ 1 之間的小數
            If a(i) >= 60 Then
                x += 1
            End If

        Next

        For i = 0 To a.Length - 1
            Label1.Text = Label1.Text & i + 1 & ". " & a(i) & vbCr
        Next

        Label1.Text = Label1.Text & "及格的有 " & x & " 個"

    End Sub
End Class
-----------------------------------------------------------------------------------------------------------------


練習二:改變程式預設屬性
-----------------------------------------------------------------------------------------------------------------
1. 滑鼠在紅色區域內點兩下


2. 進入下列畫面後右上角選擇 "Activated"


3. 接著在以下出現的 "Form1_Activated" 中撰寫程式就能在程式起始時完成屬性設定

-----------------------------------------------------------------------------------------------------------------
Private Sub Form1_Activated(sender As Object, e As System.EventArgs) Handles Me.Activated
        Label1.Text = ""
        Label1.ForeColor = Color.Red
    End Sub


-----------------------------------------------------------------------------------------------------------------

4. 結果



2014年10月16日 星期四

VB.NET Class.5 (陣列)

練習一:

Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim a(4) As Char                      //宣告方法代表 a(0) 到 a(4) 共五個變數
        Dim b(0 To 4) As Char             //另一種宣告方法 也是五個變數
        Dim i As Integer

        For i = 0 To a.Length - 1             //a 的總長度 -1 才會跑五個變數 0 ~ 4
            a(i) = InputBox("請輸入第 " & i & "個字元")
        Next

        Dim s As String
        For i = 0 To a.Length - 1
            s = s & a(i)                               //字元組合方法
            MessageBox.Show(s)
        Next

    End Sub
End Class
------------------------------------------------------------------------------------------------

練習二:

------------------------------------------------------------------------------------------------
Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim a(9) As Integer
        Dim i As Integer

        For i = 0 To a.Length - 1
            a(i) = InputBox("請輸入第 " & i + 1 & "位同學成績")
        Next

        Dim total As Integer = 0
        For i = 0 To a.Length - 1
            total = total + a(i)
        Next

        MessageBox.Show("總分為:" & total & "分" & vbCr & "平均為:" & total / 10 & "分")

    End Sub
End Class
------------------------------------------------------------------------------------------------

練習三:輸入10位同學成績秀在Label上

------------------------------------------------------------------------------------------------
Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Label1.Text = ""
        Dim a(9) As Integer
        Dim i As Integer

        For i = 0 To a.Length - 1
            a(i) = InputBox("請輸入第 " & i + 1 & "位同學成績")
        Next

        Dim total As Integer = 0
        For i = 0 To a.Length - 1
            Label1.Text = Label1.Text & "第" & i & "位同學成績為 " & a(i) & "分" & vbCr
            total = total + a(i)
        Next

        Label1.Text += "================" & vbCr
        Label1.Text += "總分為:" & total & "分" & vbCr & "平均為:" & total / 10 & "分"
        'MessageBox.Show("總分為:" & total & "分" & vbCr & "平均為:" & total / 10 & "分")
    End Sub
End Class
------------------------------------------------------------------------------------------------

練習四:VB 的 Switch Case 寫法

------------------------------------------------------------------------------------------------
Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim num As Integer
        num = TextBox1.Text

        Select Case num
            Case 1
                Label1.Text = "1 is first"
            Case 2
                Label1.Text = "2 is second"
            Case 3
                Label1.Text = "3 is third"
            Case 4
                Label1.Text = "4 is fourth"
            Case 5
                Label1.Text = "5 is fifth"
            Case Else
                Label1.Text = "請別來亂謝謝!!"
        End Select

    End Sub
End Class


2014年10月14日 星期二

VB.NET Class.4 (函數)


函數、傳入值:

-----------------------------------------------------------------------------------------------------------------
<pre class="prettyprint">
Public Class Form1
    Private Sub slogan()
        MessageBox.Show("你好嗎?")
        MessageBox.Show("我很好!!")
    End Sub
</pre>
Public Class Form1
    Private Sub slogan()
        MessageBox.Show("你好嗎?")
        MessageBox.Show("我很好!!")
    End Sub
-----------------------------------------------------------------------------------------------------------------    Private Sub cal(ByVal x, ByVal y)
        Label1.Text = x + y
    End Sub
-----------------------------------------------------------------------------------------------------------------    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim x As Integer
        Dim y As Integer
        x = 5
        y = 3
        slogan()
        cal(x, y)
    End Sub
End Class
-----------------------------------------------------------------------------------------------------------------

函數、回傳值:
-----------------------------------------------------------------------------------------------------------------
Public Class Form1
    Private Sub slogan()
        MessageBox.Show("你好嗎?")
        MessageBox.Show("我很好!!")
    End Sub
-----------------------------------------------------------------------------------------------------------------
    Private Function cal(ByVal x, ByVal y)
        Dim result As Integer
        result = x * y
        Return result
    End Function
-----------------------------------------------------------------------------------------------------------------
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        slogan()

        Dim x As Integer
        Dim y As Integer
        x = InputBox("輸入X值")
        y = InputBox("輸入Y值")
        Dim result As Integer = cal(x, y)
        MessageBox.Show("結果值為" & result)
        Label1.Text = result
    End Sub
End Class
-----------------------------------------------------------------------------------------------------------------

練習一(輸入一個值算出有幾個因數):

-----------------------------------------------------------------------------------------------------------------
Public Class Form1
    Public Function countfac(x)
        Dim i As Integer
        Dim number As Integer = 0

        For i = 1 To x
            Dim result As Integer = x Mod i
            If result = 0 Then
                number += 1
            End If
        Next

        Return number

    End Function
-----------------------------------------------------------------------------------------------------------------
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim x As Integer = TextBox1.Text
        Dim result As Integer = countfac(x)
        Label1.Text = "您輸入的值 " & x & " 共有 " & result & " 個因數"
        MessageBox.Show("您輸入的值 " & x & " 共有 " & result & " 個因數")
    End Sub
End Class
-----------------------------------------------------------------------------------------------------------------