不使用Visual Studio GUI设计器(工具箱)构建C#GUI

在Java Swing中,我们可以创建仅使用Java编码的GUI(例如在Eclipse中)。 使用NetBeans的工具箱将组件拖放到UI是可选的。

我想知道C#中是否有相同的概念。 我可以将我的组件放入我的GUI并仅使用编码添加它们的行为吗? 这样我觉得我可以更好地控制我的应用程序。

示例:我不想使用工具箱将“鼠标hover”添加到我的按钮! 相反,我想自己编写代码。 我知道在哪里可以找到代码,但它是我应该编写那行代码的唯一地方吗?

请将Java Swing与C#进行比较。

关于C#:

为了从cmd运行C#应用程序,需要执行以下步骤:

  1. 转到文件系统上的C:\Windows\Microsoft.NET\Framework\v4.0.30319位置并复制路径。
  2. 现在右键单击Computer转到属性。
  3. 在“ System Properties ,选择“ Advanced选项卡,然后单击“ Environment Variables
  4. 在“ User Variables Environment Variables下的“ Environment Variables ”中,选择“ New
  5. 对于Variable Name写入CSHARP_HOME或其他东西,虽然我使用相同的进一步需要来解释这一点。 对于Variable Value只需Paste您在步骤1中复制的内容。 单击确定。
  6. 再次执行步骤4 ,如果path变量不存在,则可以简单地选择path ,然后单击Edit以执行下一个操作(在Variable Value末尾放置;(分号)并写入%CSHARP_HOME%\ (或使用您在步骤5 ))中使用的内容。 此时为Variable Name写入path ,对于Variable Value使用%CSHARP_HOME%\并单击“确定”。
  7. 打开cmd并键入csc并按ENTER键 ,您可能会看到类似这样的输出 CMD输出1
  8. 现在考虑我在这个位置C:\Mine\csharp\command为我的CSharp项目创建一个目录结构(在文件系统上)。 我在command文件夹中创建了两个文件夹。 来源构建
  9. 现在从任何Text Editor创建一个小示例程序(我使用的是Notepad ++),如下所示,将其保存为source文件夹下的WinFormExample.cs

 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()); } } } 

  1. 现在输入csc /out:build\WinFormExample.exe source\WinFormExample.cs (最后给出更多信息,对于编译器选项),然后按ENTER进行编译,如下所示: CMD输出2
  2. 现在只需使用.\build\WinExample运行它,如下所示: CMD输出3
  3. 现在您的简单GUI Application已启动并运行:-)

请告诉我,我也可以解释一下Java的相同内容,如果需要的话:-)

有关Compiler Options更多信息可以在按字母顺序列出的C#编译器选项中找到

WinForms拖放没有什么神奇之处。 您可以从System.Windows.Forms引用相同的类。 如果您打算自己动手,我建议您查看模型视图Presenter模式 。

这是一篇比较Java Swing和WinForms的好文章 :