1

VB2010。我一定错过了一些东西,因为在搜索了一个小时后我找不到解决方案。我想做的很简单。在我的应用程序中,我想显示一个无模式表单,以便它浮动,而用户仍然可以与主表单交互。

dim f as New frmColors
f.Show(Me)

但我在任何时候都只想要一个表单实例。那么如何防止多次显示实例,如果有一个实例,那么就给它焦点?

4

2 回答 2

2

像这样的事情对你有用吗,如果表格已经可见,你不能做 a Show,你可以做 a BringToFront,你也可以检查表格是否已经被处理,这样你就可以新建一个。

Public Class Form1
    Dim f As New frmColors

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        If f.IsDisposed Then f = New frmColors 'To handle user closing form
        CheckForm(f)
    End Sub

    Private Sub CheckForm(frm As Form)
        If frm.Visible Then
            frm.BringToFront()
        Else
            frm.Show(Me)
        End If
    End Sub    
End Class
于 2012-11-14T02:06:22.573 回答
0

使您的表单遵循单例模式。我不能保证这个样本,但从文本来看,它似乎做了你想做的事。

于 2012-11-14T18:35:28.203 回答