⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formmain.vb

📁 Programming the .NET Compact Framework with vb 源代码
💻 VB
📖 第 1 页 / 共 2 页
字号:
      ' mnuDiagonal
      ' 
      Me.mnuDiagonal.Text = "Diagonal"
      ' 
      ' mnuVertical
      ' 
      Me.mnuVertical.Text = "Vertical"
      ' 
      ' mnuFlawedVertical
      ' 
      Me.mnuFlawedVertical.Text = "FlawedVertical"
      ' 
      ' mnuCheckers
      ' 
      Me.mnuCheckers.MenuItems.Add(Me.mnuBoard)
      Me.mnuCheckers.MenuItems.Add(Me.mnuSelfFix)
      Me.mnuCheckers.MenuItems.Add(Me.mnuSelfDestruct)
      Me.mnuCheckers.Text = "Checkers"
      ' 
      ' mnuBoard
      ' 
      Me.mnuBoard.Text = "Board"
      ' 
      ' mnuSelfFix
      ' 
      Me.mnuSelfFix.Text = "Self Fixing"
      ' 
      ' mnuSelfDestruct
      ' 
      Me.mnuSelfDestruct.Text = "Self Destructive"
      ' 
      ' mnuGliders
      ' 
      Me.mnuGliders.MenuItems.Add(Me.mnuGlider)
      Me.mnuGliders.MenuItems.Add(Me.mnuGliderMate)
      Me.mnuGliders.MenuItems.Add(Me.mnuGliderPump)
      Me.mnuGliders.Text = "Gliders"
      ' 
      ' mnuGlider
      ' 
      Me.mnuGlider.Text = "Single"
      ' 
      ' mnuGliderMate
      ' 
      Me.mnuGliderMate.Text = "Mate"
      ' 
      ' mnuGliderPump
      ' 
      Me.mnuGliderPump.Text = "Pump"
      ' 
      ' mnuAbout
      ' 
      Me.mnuAbout.Text = "&Help"

      ' Starting selections
      'Me.mnuSpeed_Click(Me.mnuSpeedNormal, EventArgs.Empty)
      'Me.mnuZoom_Click(Me.mnuSizeNormal, EventArgs.Empty)
   End Sub
#End Region

#Region "Utitlities"
   Private Function LittlePowerOfTwo(ByVal exponent As Integer) As Integer
      '	Don't laugh.  It is not in the CLR 
      '		(except for SQL non-integer types).
      Select Case exponent
         Case 0
            Return 1
         Case 1
            Return 2
         Case 2
            Return 4
         Case 3
            Return 8
         Case 4
            Return 16
         Case 5
            Return 32
         Case 6
            Return 64
         Case 7
            Return 128
         Case 8
            Return 256
         Case 9
            Return 512
         Case 10
            Return 1024
         Case Else
            Return 1024
      End Select
   End Function 'LittlePowerOfTwo
#End Region

#Region "Menu Processing"

   Private Sub mnuStartStop_Click(ByVal sender As Object, _
                                  ByVal e As System.EventArgs _
                                  ) _
                                  Handles mnuStartStop.Click

      '	The Start/Stop button is a toggle.
      boolRun = Not boolRun

      '	If requested to run.
      If boolRun Then
         '	Do not allow the user to do certain
         '		things while the game is running.
         btnStartStop.Text = "S&top"
         mnuStartStop.Text = "S&top"
         mnuExit.Enabled = False

         '	Notify the object to start the game.
         refLifeMain.StartGame()
         '	If requested to stop.
      Else
         refLifeMain.StopGame()
         btnStartStop.Text = "S&tart"
         mnuStartStop.Text = "S&tart"
         mnuExit.Enabled = True
      End If
   End Sub 'mnuStartStop_Click


   Private Sub mnuExit_Click(ByVal sender As Object, _
                              ByVal e As System.EventArgs _
                              ) _
                              Handles mnuExit.Click
      Application.Exit()
   End Sub 'mnuExit_Click


   Private Sub mnuPatterns_Click(ByVal sender As Object, _
                              ByVal e As System.EventArgs _
                              ) _
                              Handles mnuBoard.Click, _
                                      mnuDiagonal.Click, _
                                      mnuEightCell.Click, _
                                      mnuEmpty.Click, _
                                      mnuFiveCell.Click, _
                                      mnuFlawedVertical.Click, _
                                      mnuGlider.Click, _
                                      mnuGliderMate.Click, _
                                      mnuGliderPump.Click, _
                                      mnuSelfDestruct.Click, _
                                      mnuSelfFix.Click, _
                                      mnuSixCell.Click, _
                                      mnuTenCell.Click, _
                                      mnuVertical.Click
      '	Some pattern work best at certain sizes.
      '         if( sender == mnuTenCell ) tbarSize.Value = 7;
      '         if( sender == mnuFlawedVertical ) tbarSize.Value = 7;
      '	Inform the LifeMain object of the 
      '		requested pattern.
      If sender Is mnuEmpty Then
         refLifeMain.SetPattern(LifeMain.lgpPattern.lgpEmpty)
      End If
      If sender Is mnuFiveCell Then
         refLifeMain.SetPattern(LifeMain.lgpPattern.lgpFiveCell)
      End If
      If sender Is mnuSixCell Then
         refLifeMain.SetPattern(LifeMain.lgpPattern.lgpSixCell)
      End If
      If sender Is mnuEightCell Then
         refLifeMain.SetPattern(LifeMain.lgpPattern.lgpEightCell)
      End If
      If sender Is mnuTenCell Then
         refLifeMain.SetPattern(LifeMain.lgpPattern.lgpTenCell)
      End If
      If sender Is mnuVertical Then
         refLifeMain.SetPattern(LifeMain.lgpPattern.lgpVertical)
      End If
      If sender Is mnuFlawedVertical Then
         refLifeMain.SetPattern(LifeMain.lgpPattern.lgpFlawedVertical)
      End If
      If sender Is mnuDiagonal Then
         refLifeMain.SetPattern(LifeMain.lgpPattern.lgpDiagonal)
      End If
      If sender Is mnuBoard Then
         refLifeMain.SetPattern(LifeMain.lgpPattern.lgpBoard)
      End If
      If sender Is mnuSelfFix Then
         refLifeMain.SetPattern(LifeMain.lgpPattern.lgpSelfFix)
      End If
      If sender Is mnuSelfDestruct Then
         refLifeMain.SetPattern(LifeMain.lgpPattern.lgpSelfDestruct)
      End If
      If sender Is mnuGlider Then
         refLifeMain.SetPattern(LifeMain.lgpPattern.lgpGlider)
      End If
      If sender Is mnuGliderMate Then
         refLifeMain.SetPattern(LifeMain.lgpPattern.lgpGliderMate)
      End If
      If sender Is mnuGliderPump Then
         refLifeMain.SetPattern(LifeMain.lgpPattern.lgpGliderPump)
      End If
      '	If there is a pattern in the window,
      '		enable the start button and give
      '		it the focus.
      btnStartStop.Enabled = Not (sender Is mnuEmpty)
      mnuStartStop.Enabled = Not (sender Is mnuEmpty)
      If btnStartStop.Enabled Then
         btnStartStop.Focus()
      End If
      '	Prepare to draw the patterns.
      facadeLifeGame.Invalidate()
   End Sub 'mnuPatterns_Click


   Private Sub mnuReset_Click(ByVal sender As Object, _
                              ByVal e As System.EventArgs _
                              ) _
                              Handles mnuReset.Click
      refLifeMain.Reset()
      facadeLifeGame.Invalidate()
   End Sub 'mnuReset_Click


   Private Sub mnuManual_Click(ByVal sender As Object, _
                              ByVal e As System.EventArgs _
                              ) _
                              Handles mnuManual.Click
      MessageBox.Show("Click in the window to create or alter a pattern")
   End Sub 'mnuManual_Click


   Private Sub mnuSpeed_Click(ByVal sender As Object, _
                              ByVal e As System.EventArgs _
                              ) _
                              Handles mnuFast.Click, _
                                      mnuFaster.Click, _
                                      mnuFastest.Click, _
                                      mnuSpeedNormal.Click, _
                                      mnuSlow.Click, _
                                      mnuSlower.Click, _
                                      mnuSlowest.Click
      If refLifeMain Is Nothing Then
         Return
      End If
      Select Case CType(sender, MenuItem).Text
         Case "Fastest"
            refLifeMain.ChangeRunSpeed(CInt(utilGUI.gameSpeed.gsFastest))
         Case "Fast"
            refLifeMain.ChangeRunSpeed(CInt(utilGUI.gameSpeed.gsFast))
         Case "Faster"
            refLifeMain.ChangeRunSpeed(CInt(utilGUI.gameSpeed.gsFaster))
         Case "Normal"
            refLifeMain.ChangeRunSpeed(CInt(utilGUI.gameSpeed.gsNormal))
         Case "Slower"
            refLifeMain.ChangeRunSpeed(CInt(utilGUI.gameSpeed.gsSlower))
         Case "Slow"
            refLifeMain.ChangeRunSpeed(CInt(utilGUI.gameSpeed.gsSlow))
         Case "Slowest"
            refLifeMain.ChangeRunSpeed(CInt(utilGUI.gameSpeed.gsSlowest))
      End Select
   End Sub 'mnuSpeed_Click


   Private Sub mnuZoom_Click(ByVal sender As Object, _
                              ByVal e As System.EventArgs _
                              ) _
                              Handles mnuIn.Click, _
                                      mnuInnest.Click, _
                                      mnuOut.Click, _
                                      mnuOutest.Click, _
                                      mnuSizeNormal.Click
      If refLifeMain Is Nothing Then
         Return
      End If
      Select Case CType(sender, MenuItem).Text
         Case "Innest"
            refLifeMain.ChangeDisplaySize(CInt(utilGUI.gameZoom.gzInnest))
         Case "In"
            refLifeMain.ChangeDisplaySize(CInt(utilGUI.gameZoom.gzIn))
         Case "Normal"
            refLifeMain.ChangeDisplaySize(CInt(utilGUI.gameZoom.gzNormal))
         Case "Out"
            refLifeMain.ChangeDisplaySize(CInt(utilGUI.gameZoom.gzOut))
         Case "Outest"
            refLifeMain.ChangeDisplaySize(CInt(utilGUI.gameZoom.gzOutest))
      End Select
   End Sub 'mnuZoom_Click

#End Region

#Region "Event Handlers"

   Private Sub facadeLifeGame_MouseUp(ByVal sender As Object, _
                              ByVal e As MouseEventArgs _
                              ) _
                              Handles facadeLifeGame.MouseUp
      '	The user is entering a pattern,
      '		enable Run.
      btnStartStop.Enabled = (mnuStartStop.Enabled = True)
   End Sub 'facadeLifeGame_MouseUp


   Private Sub LifeMain_NextGenReady(ByVal sender As Object, _
                              ByVal e As EventArgs _
                              ) _
                              Handles refLifeMain.NextGenReady
      ' Place a reference to the current and previous
      '    generation into properties of the control.
      '    Then have the control draw the current 
      '    generation.
      Me.facadeLifeGame.refCurr = refLifeMain.genCurr
      Me.facadeLifeGame.refPrev = refLifeMain.genPrev
      Me.facadeLifeGame.Invalidate()
      Application.DoEvents()
   End Sub 'LifeMain_NextGenReady


   Private Sub LifeMain_StableStateReached(ByVal sender As Object, _
                              ByVal e As EventArgs _
                              ) _
                              Handles refLifeMain.StableStateReached
      '	Delegate routine.  Called by LifeMain
      '		when the pattern is now static.
      mnuStartStop_Click(Me, EventArgs.Empty)
      Application.DoEvents()
      MessageBox.Show("Steady State")
   End Sub 'LifeMain_StableStateReached
#End Region

#Region "Termination"
   Private Sub FormMain_Closing(ByVal sender As Object, _
                              ByVal e As CancelEventArgs _
                              ) _
                              Handles MyBase.Closing
      '	If the form is closing, STOP THE GAME.	
      If Not (refLifeMain Is Nothing) Then
         refLifeMain.StopGame()
      End If
   End Sub 'FormMain_Closing

#End Region
End Class

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -