Windows Forms允许你使用Visual Studio创建桌面应用程序。一个Windows Forms应用程序的主要组成部分包括画布和代码后台。
画布是你可以拖动和可视化UI元素(如标签)到应用程序上的地方。代码后台是你可以编写编程逻辑和处理事件的地方。
当学习如何在一个新的环境中编码时,从别人的经验中学习是很有用的。你可以使用Windows Forms重新创建这些常见的桌面应用程序,这可以帮助你了解更多关于Forms应用程序的工作原理。
重新创建现有应用程序的好处
有一些常见的应用程序,其他开发者已经创建了无数次。这包括计算器、各种转换器,或待办事项列表的应用程序。正因为如此,这些常见的应用程序通常有许多教程指南或YouTube视频,你可以跟随。
遵循这些资源可以让你了解开发者用来创建这些应用程序的不同方法。这包括他们解决问题的方法,或者他们如何架构他们的应用程序的可维护性。
1.转换器(温度、测量及更多)
温度转换器是一个很好的第一个Windows Forms应用程序的构建。
在这里,你将学习如何在画布上添加UI元素。在这种情况下,你可以先添加两个文本框,它们将代表要转换的数字和结果。然后你可以创建一个按钮,在点击时计算出结果。
这也会让你学习事件处理。你可以在微软的文档中探索事件处理,找出如何将一个按钮(即计算 按钮)与一个函数配对。这个函数将在用户点击按钮时触发。
private void button_num_Click(object sender, EventArgs e){ // Calculate the result and display it to the user.}
你还将学习如何处理无效的输入。对于这一点,你可以探索微软的Control.Visible Property文档中显示的例子。这将允许你添加一个带有错误信息的UI标签,并且只在输入无效的情况下将可见性设置为真 。
2.计算器
创建一个计算器也将帮助你学习事件处理。这个应用程序包含表示数字和数学运算的按钮。另一个UI元素是文本框,它位于顶部并输出答案。
当用户点击按钮时,你可以不断地更新一个存储正在进行的数学方程的字符串。当他们点击等号 按钮时,你可以使用**Compute()**函数。正如微软Compute()文档所解释的,这个函数计算你传递给它的表达式的结果。
output_result.Text = new DataTable().Compute(formattedCalculation, null).ToString();
你还可以了解更多关于错误和情景处理的信息。例如,不应该允许用户连续多次按下 "+"按钮。如果他们用无效的公式按下等号按钮,例如 "+-((4()x",他们也应该收到错误信息。在开发这个应用程序时,你将学会处理所有这些情况。
3.简单的文件管理器
一个简单的文件管理器是另一个你可以使用Windows Forms创建的应用程序。要创建这个应用程序,你可以复制或修改你电脑上现有的Windows文件管理器的设计。
你还必须动态地生成用户界面,而不是手动将UI元素拖到画布上。
例如,你可能需要使用数组并动态地创建UI元素,如每一行的标签或图标。为此,你可以阅读微软的Button类文档,了解如何创建一个新的UI元素的例子。
Button button1 = new Button();Controls.Add(button1);
你还可以探索微软的System.IO文档,了解如何从本地计算机访问目录和文件。System.IO命名空间包括C#类,如目录类和文件类。
4.骰子模拟器
创建一个骰子模拟器是学习如何将图形渲染到Windows Form应用程序的一个好方法。在这个应用程序中,你将有从1到6的按钮。当用户选择一个按钮时,骰子的相应面就会出现。
你可以用很多方法来渲染骰子的面。你可以使用内置的C#类和方法自己绘制它们。你也可以为模具的每个形状提供图像源,并把它们渲染成图像。
微软图形类文档列出了你可以用来在画布上绘制形状的方法。例如,你可以使用FillEllipse方法在特定的x和y坐标上画一个圆,并指定半径。
e.Graphics.FillEllipse(solidBrush, 300, 50, 200, 200);
微软PictureBox文档展示了一个类,你可以用它来加载和显示存储在电脑上的一组骰子图像。
5.骰子游戏
有各种骰子游戏,你可以使用Windows Forms应用程序来制作。这个应用程序比骰子模拟器更高级,但让你有机会学习更多处理游戏状态的知识。
例如,什么触发了游戏的开始和结束,以及基于某些游戏规则的游戏期间的某些事件。一个例子是,如果你的游戏有一个规则,如果用户掷出了5,他们就可以第二次掷出骰子。
你可以探索MessageBox类,特别是微软的MessageBox.Show方法的文档。这将使你能够创建弹出式窗口来通知用户游戏中发生的事情。
MessageBox.Show("The computer has rolled the dice. They have rolled a " + totalDiceRoll);
6.标志生成器
这不一定是一个常见的应用,但它仍然可以是一个非常有用的练习。这个应用类似于骰子生成器。然而,你不是生成骰子的面,而是使用各种形状来生成不同的旗子。
在这里,你将需要从图形类中探索更多的C#方法。这包括FillRectangle()和FillPolygon()来创建不同类型的形状。要创建线条,你可以使用DrawLine方法。微软图形文档包括所有这些方法的细节。
你还需要确保你在整个旗帜上以正确的x和y坐标定位形状。
在学习Windows Forms时创建更多的应用程序
在学习Windows窗体应用程序如何工作时,有许多常见的应用程序可以重新创建。这包括各种转换器、计算器应用程序、文件管理器或骰子游戏。你可以使用一个新的Windows Forms项目从头开始创建这些应用程序。
这些示例应用程序只涉及到桌面应用程序的基础知识。你还可以继续探索你可以创建的其他类型的游戏,以及你可以用什么平台来创建它们。