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

时间:2013-08-18 00:29:44

标签: c# eclipse swing visual-studio netbeans

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

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

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

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

2 个答案:

答案 0 :(得分:7)

关于C#:

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

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

  10. 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 OUTPUT 2
    2. 现在只需使用.\build\WinExample运行它,如下所示: CMD OUTPUT 3
    3. 现在您的简单GUI Application启动并运行: - )
    4. 请告诉我,如果需要,我也可以就Java解释同样的事情: - )

      有关Compiler Options的更多信息,请访问C# Compiler Options Listed Alphabetically

答案 1 :(得分:4)

WinForms中没有什么神奇之处下降。您可以从System.Windows.Forms引用相同的类。如果您打算自己动手,我建议您查看Model View Presenter pattern

这是一个比较Java Swing和WinForms的nice article