none
如何给一个click事件添加两个动作 RRS feed

  • 问题

  • 大家好!我是自学VB的新手,这是在做练习的时候碰到的一个问题。我试了好几种方法都不能够按要求实现。

    要求是这样的:构建一个空白窗体运行的时候窗体刚好位于屏幕的左上角单击窗体后窗体应当位于屏幕的右下角,再次单击窗体则窗体回到原来左上角的位置。我知道这个问题对很多人来说可能是简单得令人发指,但是因为我自学所以有些概念还不是非常清晰,所以想象论坛里的大牛们请教,这个动作该怎样添加后我才能够达到要求呢?

    Option Explicit
    
    
    
    Private Sub Form_Click()
    Form1.Left = (Screen.Width - Form1.Width)
    Me.Top = (Screen.Width - Me.Width)
    
    
    End Sub
    
    Private Sub Form_Load()
      Form1.Left = 0
      Form1.Top = 0
    End Sub
    
    

    2011年6月7日 13:12

答案

  • 呵呵,谢谢您了!

    我已经找到方法了,是今天我们公司同事告诉我的:申明一个静态变量(就像你做的一样)在窗体里面记录击键次数然后用判断语句……嗯这个方法挺好的!谢谢你们的帮助,这坚定了我要克服困难的决心……

    2011年6月8日 13:43

全部回复

  • 怎么就没有人回复呢?
    2011年6月7日 13:13
  • 你好

    请试一下着个

    Option Strict On
    
    Public Class Form2
      Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Location = New Point(0, 0)
        Me.Text = Me.Location.ToString
      End Sub
    
      Private Sub Form2_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
        If Me.Location = New Point(0, 0) Then
          Me.Location = New Point(Screen.PrimaryScreen.WorkingArea.Width - Me.Width, Screen.PrimaryScreen.WorkingArea.Height - Me.Height)
        ElseIf Me.Left + Me.Width = Screen.PrimaryScreen.WorkingArea.Width And Me.Top + Me.Height = Screen.PrimaryScreen.WorkingArea.Height _
           And e.Location.X < 20 And e.Location.Y < 20 Then
          Me.Location = New Point(0, 0)
          Me.Text = e.Location.ToString
        Else
          MessageBox.Show("可能窗体不在右下角,还是你没有click窗体的左上角?")
        End If
    
      End Sub
    End Class
    

    Be a good forum member. Make this forum a great place to meet and interact with others around the world.
    2011年6月7日 14:57
  • 呵呵,谢谢您了!

    我已经找到方法了,是今天我们公司同事告诉我的:申明一个静态变量(就像你做的一样)在窗体里面记录击键次数然后用判断语句……嗯这个方法挺好的!谢谢你们的帮助,这坚定了我要克服困难的决心……

    2011年6月8日 13:43