您可以检查 LicenseManager 的 UsageMode,以检查代码是否在设计时。
System.ComponentModel.LicenseManager.UsageMode == System.ComponentModel.LicenseUsageMode.Designtime
这是一个简单的例子:
using System;
using System.ComponentModel;
using System.Windows.Forms;
namespace Test
{
public class ComponentClass : Component
{
public ComponentClass()
{
MessageBox.Show("Runtime!");
}
}
}
当此组件在设计器中添加到您的表单时,您将立即获得一个消息框。
为了防止这种情况,您可以添加一个简单的 if 语句来检查代码是否不在设计时
using System;
using System.ComponentModel;
using System.Windows.Forms;
namespace Test
{
public class ComponentClass : Component
{
public ComponentClass()
{
if (LicenseManager.UsageMode != LicenseUsageMode.Designtime)
{
MessageBox.Show("Runtime!");
}
}
}
}
添加 if 语句后,通过设计器将组件添加到表单时不再出现消息框。