none
關於 mouse_leave 的問題,請求高手解答 RRS feed

  • 問題

  • 各位先進

    我有一個 Form1 ,上面有一個 Button1

    但是我想要當滑鼠離開這個 Form 時,Form 就最小化

    但是通常滑鼠還沒滑出 Form1 碰到 Button1 就最小化了,我該怎麼讓滑鼠碰到 Button1 不會最小化呢?

    非常感謝各位先進解答.

    2011年1月19日 下午 02:23

解答

  • 如果撇開遇到上方的標題列的問的話. 還容易解決 (如果連標題列都要解決大概要從Win32API著手了, 因為對Form來講的工作區本身就是排除標題列的)

    你可以藉由取得MousePostion 去對應Form的位置, 然後判斷其是否位於Form的工作區中

    ex:

            Dim mPoint As Point = PointToClient(New Point(MousePosition.X, MousePosition.Y))
            If Me.ClientRectangle.Contains(mPoint) = False Then
                Me.WindowState = FormWindowState.Minimized
            End If

     


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年1月19日 下午 04:36
    版主

所有回覆

  • 如果撇開遇到上方的標題列的問的話. 還容易解決 (如果連標題列都要解決大概要從Win32API著手了, 因為對Form來講的工作區本身就是排除標題列的)

    你可以藉由取得MousePostion 去對應Form的位置, 然後判斷其是否位於Form的工作區中

    ex:

            Dim mPoint As Point = PointToClient(New Point(MousePosition.X, MousePosition.Y))
            If Me.ClientRectangle.Contains(mPoint) = False Then
                Me.WindowState = FormWindowState.Minimized
            End If

     


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    2011年1月19日 下午 04:36
    版主
  • 感謝先進

    但是小弟因太久沒寫程式至少10年

    不知道該把上面那段萬金之碼,加入 Form1 的那個事件中
    2011年1月19日 下午 04:46
  • 你問的不就是MouseLeave嗎

     Private Sub Form1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.MouseLeave


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。
    • 已標示為解答 Augustine-Lin 2011年1月19日 下午 04:52
    • 已取消標示為解答 Augustine-Lin 2011年1月19日 下午 04:54
    2011年1月19日 下午 04:51
    版主
  • 除了完美~我沒話說了^^

    非常感謝那麼完美的答案

    2011年1月19日 下午 04:53