Показать немодальную форму, но только одну
VB2010. Должно быть, я что-то упустил, потому что не мог найти решение после часа поиска. То, что я хочу сделать, просто. В моем приложении я хочу отобразить немодальную форму, чтобы она была плавающей, а пользователь все еще мог взаимодействовать с основной формой.
dim f as New frmColors
f.Show(Me)
Но я хочу только один экземпляр формы в любое время. Итак, как я могу предотвратить отображение более одного экземпляра, и если есть один экземпляр, просто выделите его?
2 ответа
Делает что-то подобное для вас, если форма уже видна, вы не можете сделать Show
Вы можете просто сделать 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
Сделайте так, чтобы ваша форма следовала шаблону синглтона. Я не могу поручиться за этот образец, но из текста он, кажется, делает то, что вы хотите.