c#自定义控件扩展用户控件设计器生成代码的变更单

c#自定义控件扩展用户控件设计器生成代码的变更单,c#,controls,designer,generated,C#,Controls,Designer,Generated,我目前有一个C#用户控件。 似乎我需要更改设计器生成代码的顺序。 GraphControlMode应在graph控件属性之前设置,因为它负责创建正确的控制器类型 // // graphControl2 // this.graphControl2.Controller.CenterX = ((uint)(623u)); this.graphControl2.Controller.CenterY = ((uint)(

我目前有一个C#用户控件。 似乎我需要更改设计器生成代码的顺序。 GraphControlMode应在graph控件属性之前设置,因为它负责创建正确的控制器类型

        // 
        // graphControl2
        // 
        this.graphControl2.Controller.CenterX = ((uint)(623u));
        this.graphControl2.Controller.CenterY = ((uint)(492u));
        this.graphControl2.Controller.ChartDiameter = ((uint)(834u));
        this.graphControl2.Controller.Interval = 100D;
        this.graphControl2.Controller.IsNormalized = false;
        this.graphControl2.Controller.Pause = false;
        this.graphControl2.Controller.Speed = 50D;
        this.graphControl2.Controller.TimeElapsed = 0D;
        this.graphControl2.Controller.View = livePieGraph1;
        this.graphControl2.GraphControlMode = GraphingControl.GraphControl.GraphMode.LIVEPIEGRAPH;

有办法吗?

有什么问题吗?只要把线剪断并粘贴到正确的位置。这是设计师生成的代码,它仍然是代码而不是魔法

有什么问题吗?只要把线剪断并粘贴到正确的位置。这是设计师生成的代码,它仍然是代码而不是魔法

问题是当我移动它时,设计者会抱怨,我不希望每次将控件复制到表单时都让它这样做。我的意思是,应用程序然后运行。。。但是表单无法再呈现,因为它包含graphControl2用户控件,或者此代码是用户控件的一部分?graphControl2是用户控件,提供的代码是设计器生成的内容的摘录。发生此问题的原因是更改GraphControlMode属性时会创建一个对象并将其指定给控制器引用。如果这是最后创建的,那么控制器为null,因此不能设置其他属性。对此我不太确定,目前无法测试,但我认为设计器会按照控件中定义的顺序生成属性分配。因此,尝试将GraphControlMode属性置于UserControl中的Controller属性之上。如果这不起作用,请尝试避免生成控制器属性的代码。这可以通过指定属性来完成:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]公共xyz控制器{get;set;}
很抱歉,我必须自己更正。设计器按属性名称的字母顺序排列代码。您可以将
DefaultValue
属性添加到控制器并将其设置为null。这将阻止设计器初始化控制器。问题是当我移动它时,设计器会抱怨,我不希望每次将控件复制到窗体时都让它这样做。我的意思是,应用程序然后运行。。。但是表单无法再呈现,因为它包含graphControl2用户控件,或者此代码是用户控件的一部分?graphControl2是用户控件,提供的代码是设计器生成的内容的摘录。发生此问题的原因是更改GraphControlMode属性时会创建一个对象并将其指定给控制器引用。如果这是最后创建的,那么控制器为null,因此不能设置其他属性。对此我不太确定,目前无法测试,但我认为设计器会按照控件中定义的顺序生成属性分配。因此,尝试将GraphControlMode属性置于UserControl中的Controller属性之上。如果这不起作用,请尝试避免生成控制器属性的代码。这可以通过指定属性来完成:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]公共xyz控制器{get;set;}
很抱歉,我必须自己更正。设计器按属性名称的字母顺序排列代码。您可以将
DefaultValue
属性添加到控制器并将其设置为null。这将阻止设计器初始化控制器。