c#对设计器隐藏函数
我有一个在设计器中导致异常的函数。如果设计器加载函数,我是否可以避免调用该函数。是否有一种属性或东西比try-catch更好 更多详情:c#对设计器隐藏函数,c#,designer,attributes,C#,Designer,Attributes,我有一个在设计器中导致异常的函数。如果设计器加载函数,我是否可以避免调用该函数。是否有一种属性或东西比try-catch更好 更多详情: 我是指win窗体的visual studio设计器。我的表单使用一个signleton,它在初始化时调用LoadProject()。现在我想避免设计器调用LoadProject()函数。假设这是WinForms-您可以检查当前是否处于设计模式,并立即返回函数 有一些复杂的问题,包括解决方案都有详细解释。您可以尝试查看有关使用设计模式的属性。这可能对你有所帮助。
我是指win窗体的visual studio设计器。我的表单使用一个signleton,它在初始化时调用LoadProject()。现在我想避免设计器调用LoadProject()函数。假设这是WinForms-您可以检查当前是否处于设计模式,并立即返回函数
有一些复杂的问题,包括解决方案都有详细解释。您可以尝试查看有关使用设计模式的属性。这可能对你有所帮助。您可以将引发异常的代码包装在一个条件中,以避免在设计时生成代码
请注意,这在构造函数中不起作用,因为设计者必须实例化对象,然后设置属性。有几种方法可以检测您是否处于设计模式:
- 检查控件属性的值。但是,这在控件的构造函数中不起作用,因为它仅在控件已定位时返回true,而在创建控件之后才会返回true。它还有一个属性,即自定义控件中的自定义控件将始终返回false
- 使用
检查当前应用程序的路径是否包含application.ExecutablePath.ToLower().IndexOf(“devenv.exe”)
。如果是,则Visual Studio正在实例化该控件。有点可怕,但它是有效的devenv.exe
- 检查
以获取值LicenseManager.UsageMode
(有关更多详细信息,请查看至)。请注意,这在构造函数中确实有效LicenseUsageMode.Designtime
在这些检查中包装对函数的调用应该可以解决您的问题。哪个设计器-Windows窗体设计器?设计师调用的是哪种方法/函数?同意。如果你把问题变得既详细又具体,我会给你一个+1来抵消。