C# Java designer脚本项目在VB6到C的转换中扮演什么角色?

C# Java designer脚本项目在VB6到C的转换中扮演什么角色?,c#,vb.net,vb6,computer-science,C#,Vb.net,Vb6,Computer Science,在我的工作中,我目前正试图围绕一个VB6到C#的转换项目进行思考,这是一个其他人很久以前构建的大型工具 我遇到的是一个名为“Designer”的未完成Java项目,它在VB文件上运行解析程序以生成.cs文件之前生成***.Designer.cs文件。我无法理解设计器生成的这些.designer.cs文件的用途,因为我(有限)理解。designer.cs文件通常是由您编写C#的任何IDE自动创建的。这是一个样本 namespace RAUI { partial class frmAbout

在我的工作中,我目前正试图围绕一个VB6到C#的转换项目进行思考,这是一个其他人很久以前构建的大型工具

我遇到的是一个名为“Designer”的未完成Java项目,它在VB文件上运行解析程序以生成.cs文件之前生成***.Designer.cs文件。我无法理解设计器生成的这些.designer.cs文件的用途,因为我(有限)理解。designer.cs文件通常是由您编写C#的任何IDE自动创建的。这是一个样本

namespace RAUI
{ 
  partial class frmAbout
  { 

  private System.ComponentModel.IContainer components = null;
  protected override void Dispose(bool disposing)
  {
    if (disposing && (components != null))
    {
    components.Dispose();
    }
    base.Dispose(disposing);
  }

  }

  private void InitializeComponent()
  {
    this.cmdOK = new GGControls.DRGButton();

    this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
    this.Text =    "Test";
    this.Location = new System.Drawing.Point(156, 129);
    this.ClientSize = new System.Drawing.Size(225, 106);
    this.MaximizeBox = false;
    this.MinimizeBox = false;
    this.ShowInTaskbar = false;

    this.cmdOK.Name = "cmdOK";
    this.cmdOK.Text =       "&OK";
    this.cmdOK.CausesValidation = false;
    this.AcceptButton = this.cmdOK;
    this.cmdOK.TabIndex = 3;
    this.cmdOK.Location = new System.Drawing.Point(72,72);
    this.cmdOK.Size = new System.Drawing.Size(81,27);
  }
}
我认为这个非常简单的示例只创建了实现c#代码所需的控件和属性,但我不理解为什么需要一个非常大和复杂的设计器脚本作为转换过程的一部分


任何帮助都将不胜感激

您说*.designer.cs文件通常是由IDE创建的,这是正确的。然而,在这里,自己生成它们是有意义的

要理解原因,您必须了解该文件实际上是什么。IDE接受您在实际表单设计器(因此是designer.cs)上所做的所有工作,并将其填充到生成的代码文件中,该文件包含创建表单所需的所有代码

实际上,您完全可以在没有设计器的情况下创建一个表单,因为代码非常混乱,所以可以创建两个文件(和
partial
类)


因此,在这个转换中,由于您还没有可以直接转换的设计器文件,因此基于其他现有文件生成它们似乎是完全合理的。

我可以理解为什么您要在转换中生成设计器文件,但VB不已经有了设计器文件吗?它们是否不存在于您的VB项目中?不存在,据我所知,VB项目严格包含表单、.frx和.ctl文件。设计器文件具有InitializeComponent(),用于设置表单上的所有控件。这个方法是从表单构造函数中调用的。是的,这是有道理的,我相信我理解设计器文件本身的用途,但我不理解的是为什么Java设计器项目需要在VB6到C的转换中实际生成这些设计器文件,以及它所做的不能用正确翻译的.cs文件自动完成的事情。谢谢,这回答了我的问题!加一。与窗体设计器相当的VB6是frm和frx文件的上半部分。它们包含控件和窗体属性。它们是由VB6 IDE创建的。从VB6到C#的彻底转换可能涉及将这些表单/控件定义转换为C#设计器。