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

2023-12-19

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

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

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

请在此比较 Java Swing 和 C#。


关于 C#:

为了让您运行C#申请来自cmd,需要执行以下步骤:

  1. Go to C:\Windows\Microsoft.NET\Framework\v4.0.30319文件系统上的位置并复制路径。
  2. 现在右键单击Computer转到属性。
  3. Under System Properties, 选择Advanced选项卡,然后单击Environment Variables.
  4. On Environment Variables under User Variables, 选择New.
  5. For Variable Name write CSHARP_HOME或其他东西,尽管我使用相同的东西来进一步需要解释这一点。为了Variable Value simply Paste你复制的内容Step 1。单击“确定”。
  6. 再次执行Step 4, if path变量不存在,否则您可以简单地选择path然后单击Edit执行接下来的事情(放置后;(分号)在结束时Variable Value和写%CSHARP_HOME%\(或者使用你用过的Step 5))。这次为了Variable Name write path,并且对于Variable Value use %CSHARP_HOME%\并单击“确定”。
  7. Open cmd and type csc and press ENTER, you might be able to see something like this as an output CMD OUTPUT 1
  8. 现在考虑我正在这个位置为我的 CSharp 项目创建一个目录结构,如下所示(在文件系统上)C:\Mine\csharp\command。这里我在里面创建了两个文件夹command文件夹。source and build.
  9. 现在从任何Text Editor创建一个小示例程序(我使用的是Notepad++),如下,另存为WinFormExample.cs under 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());
        }
    }
}

  1. Now type csc /out:build\WinFormExample.exe source\WinFormExample.cs (more info is given at the end, for compiler options)and press ENTER to compile as shown below : CMD OUTPUT 2
  2. Now simply run it using .\build\WinExample, as shown below : CMD OUTPUT 3
  3. 现在你的简单GUI Application已启动并正在运行:-)

请告诉我,我可以解释同样的事情Java如果需要的话也可以:-)

有关更多信息Compiler Options可以找到按字母顺序列出的 C# 编译器选项 http://msdn.microsoft.com/en-us/library/6ds95cz0%28v=vs.80%29.aspx

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不使用 Visual Studio GUI 设计器(工具箱)构建 C# GUI 的相关文章

  • 如何避免情绪低落?

    我有一个实现状态模式每个状态处理从事件队列获取的事件 根据State因此类有一个纯虚方法void handleEvent const Event 事件继承基础Event类 但每个事件都包含其可以是不同类型的数据 例如 int string
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 在 Visual Studio 2008 上设置预调试事件

    我想在 Visual Studio 中开始调试程序之前运行一个任务 我每次调试程序时都需要运行此任务 因此构建后事件还不够好 我查看了设置的 调试 选项卡 但没有这样的选项 有什么办法可以做到这一点吗 你唯一可以尝试的 IMO 就是尝试Co
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 如果使用 SingleOrDefault() 并在数字列表中搜索不在列表中的数字,如何返回 null?

    使用查询正数列表时SingleOrDefault 当在列表中找不到数字时 如何返回 null 或像 1 这样的自定义值 而不是类型的默认值 在本例中为 0 你可以使用 var first theIntegers Cast
  • Web API - 访问 DbContext 类中的 HttpContext

    在我的 C Web API 应用程序中 我添加了CreatedDate and CreatedBy所有表中的列 现在 每当在任何表中添加新记录时 我想填充这些列 为此目的我已经覆盖SaveChanges and SaveChangesAsy
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • 如何返回 json 结果并将 unicode 字符转义为 \u1234

    我正在实现一个返回 json 结果的方法 例如 public JsonResult MethodName Guid key var result ApiHelper GetData key Data is stored in db as v
  • 在 Mac 上使用 Eclipse 进行 C++ 调试器

    当我最终设置我的 mac 来使用 eclipse 后 我无法调试 我尝试通过谷歌寻求帮助 但没有一个答案对我有用 所以 我需要有人帮助我在 eclipse 上安装和使用 c c 调试器 我安装了 Xcode 5 0 感谢您的帮助 Roy 您
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 如何在 VBA 中声明接受 XlfOper (LPXLOPER) 类型参数的函数?

    我在之前的回答里发现了问题 https stackoverflow com q 19325258 159684一种无需注册即可调用 C xll 中定义的函数的方法 我之前使用 XLW 提供的注册基础结构 并且使用 XlfOper 类型在 V
  • 将 xml 反序列化为类,list<> 出现问题

    我有以下 XML
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46

随机推荐

  • Ruby:转义 unicode 字符串

    统一码字符串 string CEO Frye u2013 response to Capitalism discussion in Davos Vote aggressively with your wallet against firms
  • Maven:指向多个 jar 的系统依赖项

    是否可以在 pom 中定义一个依赖项 使其具有系统范围但指向多个 jar 我确信这很不正统 但是 我只是想知道这是否可能 所以像这样
  • Java封装概念不清楚

    这是基本问题 但我仍然不理解封装概念 我不明白我们如何更改其他类的类属性 因为每当 我们尝试设置类的公共实例值 我们必须创建该类的对象 然后设置值 每个对象引用不同的内存 所以即使我们改变 这不会影响任何其他对象的实例值 即使我尝试使用静态
  • 有没有办法通过添加带有情感的元素来增加特异性?

    我们有一个样式化的组件 当它编译时 它会添加一个类名 如下所示 div class app a class css hash link a div 这一切都很好 除了有人声明了类似于以下内容的 CSS 的情况 app a color red
  • bash getopts 具有多个强制选项

    是否可以使用 getopts 一起处理多个选项 例如 myscript iR 或 myscript irv 另外 我遇 到的情况是 基于条件脚本需要强制选项 例如 如果脚本的参数是一个目录 我将需要指定 R 或 r 选项以及任何其他选项 m
  • 如何在 Android 版 Genymotion 模拟器中拨打来电?

    我如何拨打电话根尼运动 https www genymotion com 安卓模拟器 我正在使用 Genymotion 模拟器来运行和测试我的应用程序 在本机模拟器DDMS中 我们可以进行假调用 这可以使用 Genymotion 模拟器来完
  • 为用户定义的枚举重写 std::to_string 是为用户定义的枚举提供 to_string 的正确方法吗?

    C 没有办法获取枚举的字符串表示形式 人们通过编写包含大量样板代码的自定义函数来解决这个问题 switch with case XYZ return XYZ 当然 这需要枚举的用户知道自定义函数的名称 所以我想我可以添加一个专业std to
  • 指令测试中的 $apply 与 $digest

    如果我有一个指令响应范围内特定属性的状态 并且我想在测试中更改该属性并验证它是否正确响应 那么执行该更改的最佳方法是什么 我见过这两种模式 scope apply function scope myAttribute true and sc
  • 使用 sed 更改文件中行的位置

    我想知道如何更改文件中行的位置 最好使用 sed 例如 考虑包含 goal identifier statement let statement 1 let statement 2 forall statement other statem
  • Swift 5 中的异或?

    我正在尝试在 Swift 5 中执行 XOR 操作 文档似乎没有明确提到使用两个布尔值进行此操作 https docs swift org swift book LanguageGuide AdvancedOperators html ht
  • DateTimeFormatter 在格式化后添加至今的年份[重复]

    这个问题在这里已经有答案了 我正在尝试转换日期格式2019 12 30到有格式的日期30 12 2019为此我想使用DateTimeFormatter我有以下代码 LocalDate date LocalDate parse 2019 12
  • Summernote 中的转义 HTML

    我正在使用名为 Summernote 的所见即所得 wysiwyg 我将其值发送到服务器 并在服务器上使用 HTML Purifier 对其进行净化 之后我将其保存到数据库 mysql 然后 我需要在所见即所得中显示纯化的 html 因此将
  • strtol() 返回错误值

    我这里有一个奇怪的 当我传入以下字符串时 strtol atol 和 atoi 都会返回错误的值 long test strtol 3087663490 p 10 根据我的调试器 它返回 2147483647 我完全被难住了 有什么建议吗
  • Rstudio loadNamespace(name) 中的 Rstudio knit pdf:没有名为“rmarkdown”的包

    我刚刚更新到 Rstudio 版本 0 98 1074 当我尝试使用带有脚本的编译笔记本或带有 rmd 的 Knit pdf 时 我得到 loadNamespace 错误错误 没有名为 rmarkdown 的包 但我可以打字rmarkdow
  • Outlook MailItem:如何区分邮件是传入还是传出?

    我正在用 C 编写 VSTO Outlook 插件 我需要区分给定的 MailItem 是传入还是传出 或者两者都不是 例如当它是草稿时 有什么万无一失的方法可以做到这一点吗 我现在拥有的最佳解决方案是获取收件人 抄送和密送的列表 从活动帐
  • 由正方形网格组成的多边形

    我正在寻找一种算法来查找围绕连续的没有孔的正方形网格的多边形 如下所示 我已经让每个网格方块存储有关它们组成的周围区域的边缘类型的数据 即顶部 右上角 顶部底部 无边缘等 所以我认为这数据可以被算法利用 如果有人可以为这种算法提供一些伪代码
  • 如何像 SQL 连接一样使用 OData Expand?

    我试图弄清楚如何完成相当于 select from Users u inner join Comments c on c UserId u Id where Id 1569 表别名以获得更好的 SQL 可读性 在 StackOverflow
  • MAMP mySQL Snow Leopard 中的 Ruby On Rails

    我正在尝试找到在 MAMP 服务器上运行 Ruby on Rails 并使用 MAMP 的 mySQL 数据库的分步说明 我也在雪豹上 我已经阅读了 Hivelogic 的相关文章 但我真的不想编译rails ruby 和mySQL 大家有
  • 如何在mathematica中任意指定线条的粗细或点的大小

    我知道有一些选择 例如PointSize Large or PlotStyle gt Thick 但是如果我想要更大或更厚怎么办 谢谢 PointSize number 相对于图像的大小 AbsolutePointSize number 绝
  • 不使用 Visual Studio GUI 设计器(工具箱)构建 C# GUI

    在 Java Swing 中 我们只需编写 Java 代码即可创建 GUI 例如在 Eclipse 中 使用 NetBeans 工具箱将组件拖放到 UI 是可选的 我想知道C 中是否有相同的概念 我可以将组件放入 GUI 中并仅通过编码来添