首先,我想解釋「第二次啓動」:我使用SingleInstanceController
approach可以調用我的應用程序的EXE
文件並接受參數。最小化WinForms應用程序在第二次啓動時恢復爲正常
這樣,其他應用程序或用戶可以告訴應用程序採取特定的操作。
該應用程序設置爲以Minimized
的WindowState
開頭,並且僅在用戶單擊要恢復的托盤圖標時纔會返回Normal
。
但我看到的是,第一次啓動應用程序時,它保持最小化。然後當我第二次調用EXE文件時,它恢復到正常的窗口狀態。
我沒有改變窗口狀態的代碼。
我懷疑這是因爲別的東西在觸發恢復。
我SingleInstanceController
的代碼如下所示:
public class SingleInstanceController : WindowsFormsApplicationBase
{
public SingleInstanceController()
{
IsSingleInstance = true;
StartupNextInstance += this_StartupNextInstance;
}
void this_StartupNextInstance(object sender, StartupNextInstanceEventArgs e)
{
Form1 form = MainForm as Form1;
string command = e.CommandLine[1];
switch (command.ToLowerInvariant())
{
case "makecall":
string phoneNumber = e.CommandLine[2];
PhoneAppHelper.MakePhoneCall(phoneNumber);
break;
default:
System.Windows.Forms.MessageBox.Show("Argument not supported");
break;
}
}
protected override void OnCreateMainForm()
{
MainForm = new Form1();
}
}
在我的形式,我有一個列表框,顯示連接的設備(USB),以及多文本框來顯示一些活動,最調試/信息目的。
與窗體上的控件的交互是否會導致還原?
真棒!之前有什麼奇怪的是,它只是*恢復窗口狀態的第二次啓動。在手動最小化窗口後,第3,第4 ...第n次啓動使窗口最小化。 – MartinHN 2013-03-20 07:45:56