注册 登录
编程论坛 VB.NET论坛

VB.NET鼠标单击问题

jojpst007 发布于 2010-03-02 19:00, 1363 次点击
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim mdi As New Form2
        Dim a As New Form2
        mdi.MdiParent = Me
        mdi.Show()
End Sub
这个每次单击一次都弹出窗体,而且不能关闭.
我想实现单击第一次弹出窗体,在同一个按钮下单击第二次则关闭这个刚弹出的窗体。
该怎么改呢??
谢谢!
5 回复
#2
sywzs2010-03-03 08:24
参考以下代码,是否可以满足你的要求?
Public Class Form1
    Dim fShow As Boolean = False '先声明一个变量
    Dim mdi As New Form2

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        mdi.MdiParent = Me
        If fShow Then
            fShow = False
            mdi.Hide()
        Else
            fShow = True
            mdi.Show()
            mdi.Top = 0
            mdi.Left = 0
        End If
    End Sub
End Class
#3
jojpst0072010-03-03 12:25
谢谢。但是,单击弹出的窗口,点右上角的关闭后,再点按钮打开窗口时就弹不出来了。
#4
kenkylou2010-03-03 12:25
我也学习一下
#5
dafeixia882010-03-03 16:25
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Form2.Created = True Then
            Form2.Close()
        Else
            Form2.Show()
        End If
    End Sub
用此方法吧,应没问题
#6
sywzs2010-03-04 08:44
回复3楼:如果只有一个子窗体,尝试下面的代码。

Public Class Form1
    Dim fShow As Boolean = True '先声明一个变量
    Dim mdi As Form2

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Me.MdiChildren.Length = 0 Then
            mdi = New Form2
            mdi.MdiParent = Me
            mdi.Show()
            mdi.Top = 0
            mdi.Left = 0
            Return
        End If
        mdi.MdiParent = Me
        If fShow Then
            fShow = False
            mdi.Hide()
        Else
            fShow = True
            mdi.Show()
            mdi.Top = 0
            mdi.Left = 0
        End If
    End Sub
End Class


[ 本帖最后由 sywzs 于 2010-3-4 08:46 编辑 ]
1