当我在Visual Studio的设计器中打开Windows窗体窗体时,我的代码中抛出了一些错误。如果窗体是由设计器打开的,我想在我的代码中进行分支并执行不同的初始化。
如何在运行时确定代码是否正在作为打开窗体的设计器的一部分执行?
发布于 2012-05-24 02:20:46
if (System.ComponentModel.LicenseManager.UsageMode == System.ComponentModel.LicenseUsageMode.Designtime)
{
// Design time logic
}
发布于 2008-12-09 15:20:53
最可靠的方法是:
public bool isInDesignMode
{
get
{
System.Diagnostics.Process process = System.Diagnostics.Process.GetCurrentProcess();
bool res = process.ProcessName == "devenv";
process.Dispose();
return res;
}
}
发布于 2011-10-18 10:17:17
最可靠的方法是忽略DesignMode属性,并使用在应用程序启动时设置的您自己的标志。
类:
public static class Foo
{
public static bool IsApplicationRunning { get; set; }
}
Program.cs:
[STAThread]
static void Main()
{
Foo.IsApplicationRunning = true;
// ... code goes here ...
}
那么只要你需要,只要检查旗子就行了。
if(Foo.IsApplicationRunning)
{
// Do runtime stuff
}
else
{
// Do design time stuff
}
https://stackoverflow.com/questions/73515
复制相似问题