.net 布局调整语句能否在设计器生成的代码中重新排列?

.net 布局调整语句能否在设计器生成的代码中重新排列?,.net,vb.net,winforms,visual-studio,designer,.net,Vb.net,Winforms,Visual Studio,Designer,为了方便地合并*.Designer.vb文件中的更改,同样适用于*.Designer.cs文件,我需要对Designer生成的文件中某些代码部分的内容进行排序,因为。我可以看到16个合并冲突在重新排列之前,零冲突之后 我对排序声明等毫无疑问,但我怀疑的是ResumeLayoutfalse和InitializeComponent方法末尾的PerformLayout调用。尽管有一些学习,我还不完全理解它们是如何工作的,因此我正在寻找一个答案,重新安排它们被调用的对象的顺序是否安全。到目前为止,使用D

为了方便地合并*.Designer.vb文件中的更改,同样适用于*.Designer.cs文件,我需要对Designer生成的文件中某些代码部分的内容进行排序,因为。我可以看到16个合并冲突在重新排列之前,零冲突之后

我对排序声明等毫无疑问,但我怀疑的是ResumeLayoutfalse和InitializeComponent方法末尾的PerformLayout调用。尽管有一些学习,我还不完全理解它们是如何工作的,因此我正在寻找一个答案,重新安排它们被调用的对象的顺序是否安全。到目前为止,使用Designer进行的测试并没有显示出问题,但我想确定一下

Form1.Designer.vb中的原始订单 私有子初始化组件 “…忽略了控件的初始化 ' “表格1 ' Me.ClientSize=New System.Drawing.size784562 Me.Controls.AddMe.TableLayoutPanel1 Me.Icon=CTyperesources.GetObject$this.Icon,System.Drawing.Icon Me.Name=Form1 Me.Text=Form1标题 '设计师创建的原始订单 CTypeMe.ErrorProvider1,System.ComponentModel.ISupportInitialize.EndInit Me.TableLayoutPanel1.ResumeLayoutFalse Me.TableLayoutPanel 1.PerformLayout Me.page2.ResumeLayoutFalse Me.page2.性能布局 Me.page1.ResumeLayoutFalse Me.TableLayoutPanel2.ResumeLayoutFalse Me.TableLayoutPanel2.PerformLayout Me.TabCtl1.ResumeLayoutFalse CTypeMe.PictureBox1,System.ComponentModel.ISupportInitialize.EndInit “有关章节的结尾 我的简历是假的 端接头 在Form1.Designer.vb中修改订单 私有子初始化组件 “…忽略了控件的初始化 ' “表格1 ' Me.ClientSize=New System.Drawing.size784562 Me.Controls.AddMe.TableLayoutPanel1 Me.Icon=CTyperesources.GetObject$this.Icon,System.Drawing.Icon Me.Name=Form1 Me.Text=Form1标题 “以下几行或几对按字母顺序排列,可以吗? CTypeMe.ErrorProvider1,System.ComponentModel.ISupportInitialize.EndInit CTypeMe.PictureBox1,System.ComponentModel.ISupportInitialize.EndInit Me.page1.ResumeLayoutFalse Me.page2.ResumeLayoutFalse Me.page2.性能布局 Me.TabCtl1.ResumeLayoutFalse Me.TableLayoutPanel1.ResumeLayoutFalse Me.TableLayoutPanel 1.PerformLayout Me.TableLayoutPanel2.ResumeLayoutFalse Me.TableLayoutPanel2.PerformLayout '已排序组的结束 我的简历是假的 端接头 这样的改变总是安全的吗?或者命令是否应该按照首先列出的父控件的树层次结构排列,而不是按字母顺序排列

编辑:一些进一步的研究表明,表单设计者将祖先放在第一位,但不强制执行其他特定的排序。控件的顺序仅由控件的顺序决定。添加调用。也许我可以改进排序方法来反映这一点,我应该是安全的。

我自己的答案可能不是。在我最新的解决方案中,我避免了依赖于知道确切的答案

我已经解决了这个问题,将对象排序为一棵树,将父对象放在第一位+在每个节点内按字母顺序排序,而不是按字母顺序转储对象。这保留了VisualStudio designer排序对象的逻辑,同时也通过应用始终具有确定性的顺序来修复VisualStudio的随机性

重新排列*.Designer.vb内容的工具做得很好。如果有兴趣的话,也许我会把它作为开源发布