코드가 디자인 타임에 있는지 확인하기 위해 LicenseManager의 UsageMode를 확인할 수 있습니다. 당신은
using System;
using System.ComponentModel;
using System.Windows.Forms;
namespace Test
{
public class ComponentClass : Component
{
public ComponentClass()
{
MessageBox.Show("Runtime!");
}
}
}
이 구성 요소 디자이너에서 폼에 추가 가져옵니다
System.ComponentModel.LicenseManager.UsageMode == 여기 System.ComponentModel.LicenseUsageMode.Designtime
빠른 예입니다 immediatly 메시지 상자를 얻을 것이다. 구성 요소가 폼에 추가 할 때 코드가 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!");
}
}
}
}
에없는 경우
문 확인할 경우 간단한을 추가 할 수 있습니다이를 방지하기 위해, 메시지 박스는 더 이상 나타나지 않습니다 디자이너를 통해.
이 정보가 도움이되기를 바랍니다. 의 Form_Load에 다음
public static bool DesignMode
{
get { return (System.Diagnostics.Process.GetCurrentProcess().ProcessName == "devenv"); }
}
:
-jeremy
남자, "덜 우아한"방법이 유일한 방법입니다. LicensManager.UsageMode가 작동하지 않습니다. 디자이너가 사용자 정의 컨트롤의 '속성 얻기'메소드를 호출 할 때. – Soonts