目录
1 结论
2 项目结构
3 项目代码
1 结论
新建C#工程来说,Trae的Chat比DeepSeek的Coder好用。
2 项目结构
MyWinFormsApp/
│
├── Program.cs
├── Form1.cs
├── Form1.Designer.cs
├── MyResources/
│ └── MyResources.resx
└── MyWinFormsApp.csproj
3 项目代码
根据AI提示反复迭代修改这几个文件,可以实现C#窗口程序的生成。
//Form1.cs
using System;
using System.Windows.Forms;
namespace MyWinFormsApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 使用 .resx 文件中的资源
this.Text = MyWinFormsApp.MyResources.FormTitle;
label1.Text = MyWinFormsApp.MyResources.WelcomeMessage;
}
}
}
//Form1.Designer.cs
namespace MyWinFormsApp
{
partial class Form1
{
private System.ComponentModel.IContainer components = null;
private System.Windows.Forms.Label label1;
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(100, 100);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(100, 20);
this.label1.TabIndex = 0;
//
// Form1
//
this.ClientSize = new System.Drawing.Size(300, 200);
this.Controls.Add(this.label1);
this.Name = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
}
}
//MyWinFormsApp.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net9.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<EnableDefaultEmbeddedResourceItems>false</EnableDefaultEmbeddedResourceItems>
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
</PropertyGroup>
<ItemGroup>
<EmbeddedResource Include="MyResources\MyResources.resx">
<Generator>PublicResXFileCodeGenerator</Generator>
<LastGenOutput>MyResources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<Compile Include="Form1.cs" />
<Compile Include="Form1.Designer.cs" />
<Compile Include="Program.cs" />
<Compile Include="MyResources\MyResources.Designer.cs">
<DependentUpon>MyResources.resx</DependentUpon>
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
</Compile>
</ItemGroup>
</Project>
//Program.cs
using System;
using System.Windows.Forms;
namespace MyWinFormsApp
{
static class Program
{
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
//MyResources/MyResources.Designer.cs
namespace MyWinFormsApp {
using System;
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class MyResources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal MyResources() {
}
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MyWinFormsApp.MyResources.MyResources", typeof(MyResources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
public static string FormTitle {
get {
return ResourceManager.GetString("FormTitle", resourceCulture);
}
}
public static string WelcomeMessage {
get {
return ResourceManager.GetString("WelcomeMessage", resourceCulture);
}
}
}
}
//MyResources/MyResources.resx
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<data name="FormTitle" xml:space="preserve">
<value>我的窗体应用</value>
</data>
<data name="WelcomeMessage" xml:space="preserve">
<value>欢迎使用!</value>
</data>
</root>