在Java Swing中,我们可以创建仅使用Java编码的GUI(例如在Eclipse中)。使用NetBeans的工具箱将组件拖放到UI是可选的。
我想知道C#中是否存在相同的概念。我可以将我的组件放入我的GUI并仅使用编码添加它们的行为吗?这样我觉得我可以更好地控制我的应用程序。
示例:我不想使用工具箱将“mousehover”添加到我的按钮!相反,我想自己编写代码。我知道在哪里可以找到代码,但它是我应该编写那行代码的唯一地方吗?
请将Java Swing与C#进行比较。
答案 0 :(得分:7)
为了让您从C#
运行cmd
个应用程序,需要执行以下步骤:
C:\Windows\Microsoft.NET\Framework\v4.0.30319
位置并复制路径。Computer
转到“属性”。System Properties
下,选择Advanced
标签,然后点击Environment Variables
。Environment Variables
下的User Variables
,选择New
。Variable Name
写CSHARP_HOME
或其他内容,虽然我使用相同的内容来进一步解释这个问题。对于Variable Value
,只需Paste
您在第1步中复制的内容。单击“确定”。path
变量不存在,请再次执行第4步,否则您只需选择path
,然后点击Edit
即可执行此操作(在Variable Value
末尾加上;(分号)后写%CSHARP_HOME%\
(或使用第5步中使用的内容)) 。这一次是Variable Name
写path
,Variable Value
使用%CSHARP_HOME%\
并点击确定。cmd
并输入csc
并按 ENTER ,您可能会看到类似这样的内容作为输出
C:\Mine\csharp\command
为我的CSharp项目创建一个目录结构(在文件系统上)。在这里,我在command
文件夹中创建了两个文件夹。 来源和构建。Text Editor
创建一个小示例程序(我正在使用Notepad ++),如下所示,将其保存为WinFormExample.cs
文件夹下的source
:using System;
using System.Drawing;
using System.Windows.Forms;
namespace CSharpGUI {
public class WinFormExample : Form {
private Button button;
public WinFormExample() {
DisplayGUI();
}
private void DisplayGUI() {
this.Name = "WinForm Example";
this.Text = "WinForm Example";
this.Size = new Size(150, 150);
this.StartPosition = FormStartPosition.CenterScreen;
button = new Button();
button.Name = "button";
button.Text = "Click Me!";
button.Size = new Size(this.Width - 50, this.Height - 100);
button.Location = new Point(
(this.Width - button.Width) / 3 ,
(this.Height - button.Height) / 3);
button.Click += new System.EventHandler(this.MyButtonClick);
this.Controls.Add(button);
}
private void MyButtonClick(object source, EventArgs e) {
MessageBox.Show("My First WinForm Application");
}
public static void Main(String[] args) {
Application.Run(new WinFormExample());
}
}
}
csc /out:build\WinFormExample.exe source\WinFormExample.cs
(对于编译器选项,最后给出更多信息)并按 ENTER 进行编译,如下所示:
.\build\WinExample
运行它,如下所示:
GUI Application
启动并运行: - )请告诉我,如果需要,我也可以就Java
解释同样的事情: - )
有关Compiler Options
的更多信息,请访问C# Compiler Options Listed Alphabetically
答案 1 :(得分:4)
WinForms中没有什么神奇之处下降。您可以从System.Windows.Forms引用相同的类。如果您打算自己动手,我建议您查看Model View Presenter pattern。
这是一个比较Java Swing和WinForms的nice article: