|
■No25435 (ラン さん) に返信
> 同じExe内の親画面から子画面を呼び出す際に、二重起動防止を入れたいのですが、どうすればよいのか教えてください。
おなじExe内で多重起動を制御したいなら、変数にすればよいのでは?
Form1(親画面)、Form2(子画面)とすると、
Public Class Form1
Private frmChild As Form2
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Not frmChild Is Nothing Then
frmChild.Close()
frmChild = Nothing
End If
frmChild = New Form2
frmChild.Show()
End Sub
End Class
ちなみに、Mutexを使うのは自身のプロセスの多重チェックをする場合などに使えばいいかな。こんな感じで。
Imports System.Threading
Public Class MultiplexRunBlocker
Private Shared _mutex As Mutex
<STAThread()> _
Public Shared Sub Main()
_mutex = New Mutex(False, My.Application.Info.AssemblyName)
If Not _mutex.WaitOne(0, False) Then
MessageBox.Show("多重起動はできません")
Return
End If
Application.Run(New MainFrom())
End Sub
End Class
|