在他的书Erik Brown中
编写以下代码 并编译它
csc MyForm.cs
[assembly: System.Reflection.AssemblyVersion("1.1")]
namespace MyNamespace
{
public class MyForm : System.Windows.Forms.Form
{
public MyForm()
{
this.Text = "Hello Form";
}
public static void Main()
{
System.Windows.Forms.Application.Run(new MyForm());
}
}
}
我想添加另一个表单并从第一个表单中调用它。
我需要一个项目文件吗?汇编文件?我不明白构建过程。你能解释一下我的基础知识:如何告诉编译器构建两个表单app?
感谢
答案 0 :(得分:1)
第一种形式(form1.cs): -
public class MyForm : System.Windows.Forms.Form
{
public MyForm()
{
this.Text = "Hello Form";
this.Click+=Form_Click;
}
public static void Main()
{
System.Windows.Forms.Application.Run(new MyForm());
}
private void Form_Click(object sender, System.EventArgs e){
MyForm2 form2=new MyForm2();
form2.ShowDialog();
}
}
第二表格(form2.cs): -
public class MyForm2 : System.Windows.Forms.Form
{
public MyForm2()
{
this.Text = "Hello Form 2";
}
}
现在从命令行找到保存这些cs文件的位置,然后运行: -
csc form1.cs form2.cs
它将创建exe文件。运行它并单击表单以打开form2。
答案 1 :(得分:0)
您需要使用Visual Studio(VS)命令提示符,并且需要提及项目中所有Windows窗体的C#代码文件名(* .cs)。这必须包括表单代码隐藏文件以及设计器代码隐藏文件,否则编译将不会成功:
csc /target:winexe Program.cs Form1.cs Form1.Designer.cs Form2.cs Form2.Designer.cs
注意:包含Program.cs
其他编译器无法获取Main
入口点非常重要。 /target
开关可帮助您创建输出exe作为Windows窗体应用程序。
作为替代方案,您可以使用通配符一次性提及所有文件名称:
csc /target:winexe *.cs
另一个替代选项是在Visual Studio命令提示符上尝试msbuild
命令代替csc
命令:
msbuild WindowsFormsApplication1.csproj
这使您无需单独提及所有C#代码文件名(无论是在根目录还是子目录中)。只需一个项目文件名就可以了。