Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#对设计器隐藏函数_C#_Designer_Attributes - Fatal编程技术网

c#对设计器隐藏函数

c#对设计器隐藏函数,c#,designer,attributes,C#,Designer,Attributes,我有一个在设计器中导致异常的函数。如果设计器加载函数,我是否可以避免调用该函数。是否有一种属性或东西比try-catch更好 更多详情: 我是指win窗体的visual studio设计器。我的表单使用一个signleton,它在初始化时调用LoadProject()。现在我想避免设计器调用LoadProject()函数。假设这是WinForms-您可以检查当前是否处于设计模式,并立即返回函数 有一些复杂的问题,包括解决方案都有详细解释。您可以尝试查看有关使用设计模式的属性。这可能对你有所帮助。

我有一个在设计器中导致异常的函数。如果设计器加载函数,我是否可以避免调用该函数。是否有一种属性或东西比try-catch更好

更多详情:
我是指win窗体的visual studio设计器。我的表单使用一个signleton,它在初始化时调用LoadProject()。现在我想避免设计器调用LoadProject()函数。

假设这是WinForms-您可以检查当前是否处于设计模式,并立即返回函数


有一些复杂的问题,包括解决方案都有详细解释。

您可以尝试查看有关使用设计模式的属性。这可能对你有所帮助。您可以将引发异常的代码包装在一个条件中,以避免在设计时生成代码


请注意,这在构造函数中不起作用,因为设计者必须实例化对象,然后设置属性。

有几种方法可以检测您是否处于设计模式:

  • 检查控件属性的值。但是,这在控件的构造函数中不起作用,因为它仅在控件已定位时返回true,而在创建控件之后才会返回true。它还有一个属性,即自定义控件中的自定义控件将始终返回false
  • 使用
    application.ExecutablePath.ToLower().IndexOf(“devenv.exe”)
    检查当前应用程序的路径是否包含
    devenv.exe
    。如果是,则Visual Studio正在实例化该控件。有点可怕,但它是有效的
  • 检查
    LicenseManager.UsageMode
    以获取值
    LicenseUsageMode.Designtime
    (有关更多详细信息,请查看至)。请注意,这在构造函数中确实有效

在这些检查中包装对函数的调用应该可以解决您的问题。

哪个设计器-Windows窗体设计器?设计师调用的是哪种方法/函数?同意。如果你把问题变得既详细又具体,我会给你一个+1来抵消。