none
關於鍵盤事件 RRS feed

  • 問題

  • 小弟我有個問題:

    我想寫個程式控制如圖的Label上移下移,可是我無論如何就是無法達成目標(按了不動)

    小弟程式:

    Public Class Form1
        Dim Obj(9) As Object
        Dim Pan As New Panel
        Dim Lab As New Label
        Dim But As New Button

        Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
            Select Case e.KeyCode
                Case Keys.Up
                    Label1.Top -= 1
                    If La(Label1) = "False" Then Exit Select
                Case Keys.Down
                    Label1.Top += 1
                    If La(Label1) = "False" Then Exit Select
            End Select
        End Sub

     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Timer1.Start()
            Try
                For Each C As Label In Me.Controls
                    C.Visible = False
                Next
            Catch ex As Exception

            End Try
            Obje()
            Obj(0) = Pan
            Me.Controls.Add(Pan)
        End Sub
        Private Sub Button()
            Me.Controls.Remove(Obj(0))
            Try
                For Each C As Label In Me.Controls
                    C.Visible = True
                Next
            Catch ex As Exception
            End Try
        End Sub

    Public Function La(a As Label) As String
            If a.Top < 0 Then Return "False"
            If a.Bottom > Me.ClientSize.Height Then Return "False"
            Return "True"
        End Function

    最後回答一個問題:我KeyPreview=True已設定。

    想請教高手問題在哪?謝謝。

    2015年1月23日 下午 02:48

解答

  • 根據您貼的程式,我試是可以上下移動Label1,Label1是手動放上表單還是程式產生?Timer1和Obje做了什麼?您可以在KeyDown事件裡設中斷點,檢查程式有執行到上下移動...
    • 已標示為解答 eagle86724 2015年1月25日 上午 06:06
    2015年1月24日 上午 05:26
  • 程式這樣寫:

    Catch ex As Exception

    End Try

    就算有發生錯誤, 也看不到

    • 已標示為解答 eagle86724 2015年1月25日 上午 06:06
    2015年1月24日 上午 11:31

所有回覆

  • 根據您貼的程式,我試是可以上下移動Label1,Label1是手動放上表單還是程式產生?Timer1和Obje做了什麼?您可以在KeyDown事件裡設中斷點,檢查程式有執行到上下移動...
    • 已標示為解答 eagle86724 2015年1月25日 上午 06:06
    2015年1月24日 上午 05:26
  • 程式這樣寫:

    Catch ex As Exception

    End Try

    就算有發生錯誤, 也看不到

    • 已標示為解答 eagle86724 2015年1月25日 上午 06:06
    2015年1月24日 上午 11:31
  • 我後來發現問題出在,我的表單跟本沒Get Focus到的問題。我解決了(我把一個panel物件刪除了)。
    2015年1月25日 上午 06:06