本简短教程将介绍如何使用 Visual Studio 创建新的 Windows 窗体应用。 生成初始应用后,你将了解如何添加控件以及如何处理事件。 学完本教程后,你将拥有一个可将名称添加到列表框的简单应用。

.NET 7 和 .NET 6 的桌面指南文档正在构建中。

在本教程中,你将了解:

  • 创建新的 Windows 窗体应用
  • 将控件添加到窗体
  • 处理控制事件以提供应用功能
  • Visual Studio 2022 版本 17.0 或更高版本
  • 选择 .NET 桌面开发工作负载
  • 选择 .NET 6 单个组件
  • 使用 Visual Studio 2022 版本 17.4 或更高版本,并安装 .NET 7 和 .NET 6 各个组件。 Visual Studio 2022 版本 17.4 中添加了对 .NET 7 的支持。

    创建 Windows 窗体应用程序

    创建新应用的第一步是打开 Visual Studio 并通过模板生成应用。

  • 打开 Visual Studio。

  • 选择“创建新项目”。

  • 在“搜索模板”框中,键入“winforms”,然后等待搜索结果显示。

  • 在“代码语言”下拉列表中,选择“C#”或“Visual Basic” 。

  • 在模板列表中,选择“Windows 窗体应用”,然后单击“下一步”。

    请勿选择“Windows 窗体应用 (.NET Framework)”模板。

    下图显示了 C# 和 Visual Basic .NET 项目模板。 如果应用了“代码语言”筛选器,将看到相应的模板。

  • 在“配置新项目”窗口中,将“项目名称”设置为“Names”,然后单击“下一步”。

    还可以通过调整“位置”路径将项目保存到其他文件夹。

  • 最后,在“其他信息”窗口中,针对“Framework”设置选择“.NET 6.0 (长期支持)”,然后单击“创建”。

    生成应用后,Visual Studio 应会打开默认窗体 Form1 的设计器窗格。 如果看不到窗体设计器,请在“解决方案资源管理器”窗格中双击该窗体以打开设计器窗口。

    Visual Studio 的重要部分

    Visual Studio 中对 Windows 窗体的支持包含四个在创建应用时你将与之交互的重要组件:

  • 解决方案资源管理器

    所有项目文件、代码、窗体、资源都将显示在此窗格中。

    此窗格显示可以基于所选项进行配置的属性设置。 例如,如果从“解决方案资源管理器”中选择一个项,你会看到与该文件相关的属性设置。 如果在“设计器”中选择一个对象,你会看到控件或窗体的设置。

  • 窗体设计器

    这是窗体的设计器。 它是交互式的,可以从“工具箱”拖放对象。 通过在设计器中选择和移动项,可以直观地为应用构建用户界面 (UI)。

    工具箱包含可添加到窗体的所有控件。 若要将控件添加到当前窗体,请双击控件或拖放控件。

    如果工具箱不可见,可以通过“ 视图 > 工具箱” 菜单项显示它。

    向窗体添加控件

    当 Form1 窗体设计器处于打开状态时,使用“工具箱”窗格将以下控件添加到窗体:

  • Label
  • Button
  • Listbox
  • 可以根据以下设置定位控件并设置其大小。 以直观方式移动这些控件以匹配下面的屏幕截图,或者单击每个控件并在“属性”窗格中配置设置。 还可以单击窗体标题区域来选择窗体:

  • 找到“单击”事件,然后双击它以生成事件处理程序。

    此操作将以下代码添加到窗体:

    private void btnAdd_Click(object sender, EventArgs e)
    
    Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click
    End Sub
    

    将放入此处理程序的代码会将 txtName 文本框控件指定的名称添加到 lstNames 列表框控件中。 但是,若要添加名称,需要满足两个条件:提供的名称不能为空,且该名称不能已存在。

  • 以下代码演示如何将名称添加到 lstNames 控件:

    private void btnAdd_Click(object sender, EventArgs e) if (!string.IsNullOrWhiteSpace(txtName.Text) && !lstNames.Items.Contains(txtName.Text)) lstNames.Items.Add(txtName.Text); Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click If Not String.IsNullOrWhiteSpace(txtName.Text) And Not lstNames.Items.Contains(txtName.Text) Then lstNames.Items.Add(txtName.Text) End If End Sub

    现在已对事件进行编码,可以通过按 F5 键或从菜单中选择“调试”>“开始调试”来运行应用 。 随即显示窗体,可以在文本框中输入名称,然后通过单击按钮添加该名称。

    详细了解 Windows 窗体

  •