【WinForm.NET开发】演示:创建一个图片查看器 Windows 窗体应用

本文演示将创建一个 Windows 窗体应用程序,用于加载和显示图片。 Visual Studio 集成设计环境 (IDE) 提供了创建应用所需的工具。 

1、先决条件

若要完成本教程,必须具有 Visual Studio。 请访问Visual Studio 下载页获取免费版本。

2、创建 Windows 窗体项目

创建图片查看器时,第一步是创建 Windows 窗体应用项目。

  1. 1.打开 Visual Studio。

  2. 2.在“开始”窗口中,选择“创建新项目”。

    create-new-project-dark-theme.png?view=vs-2022

  3. 3.在“创建新项目”窗口中,搜索“Windows 窗体”。 然后,从“项目类型”列表中选择“桌面” 。

  4. 4.针对 C# 或 Visual Basic,选择“Windows 窗体应用(.NET Framework)”模板,然后选择“下一步” 。

    create-project-windows-forms.png?view=vs-2022

    5.如果未看到“Windows 窗体应用(.NET Framework)”模板,则可以通过“创建新项目”窗口安装该模板。 在“找不到所需内容?”消息中,选择“安装更多工具和功能”链接 。

    install-more-tools.png?view=vs-2022

    6.接下来,在 Visual Studio 安装程序中,选择“.NET 桌面开发”。

    install-dot-net-desktop-env.png?view=vs-2022

    7.在 Visual Studio 安装程序中,选择“修改”。 系统可能会提示你保存工作内容。 接下来,选择“继续”以安装工作负载。

  5. 8.在“配置新项目”窗口中,将项目命名为“PictureViewer”,然后选择“创建”。

    configure-new-project.png?view=vs-2022

Visual Studio 将为你的应用创建解决方案。 解决方案是应用所需全部项目和文件的容器。

此时,Visual Studio 在 Windows 窗体设计器中显示一个空窗体。

3、添加布局元素

图片查看应用包含一个图片框、一个复选框和四个按钮。 布局元素控制其在窗体上的位置。 此部分演示如何更改窗体的标题、调整窗体大小以及添加布局元素。

  1. 1.在项目中,选择“Windows 窗体设计器”。 对于 C#,该选项卡显示 Form1.cs [Design],对于 Visual Basic 则显示 Form1.vb [Design] 。

  2. 2.选择 Form1 中的任意位置。

  3. 3.属性窗口现在显示窗体的各个属性。 属性窗口通常位于 Visual Studio 的右下角。 此部分控制各种属性,例如前景色和背景色、显示在窗体顶部的标题文本以及窗体的大小。

    4.如果看不到“属性”,请选择“查看”>“属性窗口” 。

  4. 5.在属性窗口中找到“Text”属性 。 根据列表排序的方式,您可能需要向下滚动。 输入值“图片查看器”,然后按 Enter 键。

    6.窗体的标题栏中现在出现文本“图片查看器”。可以按类别或字母顺序显示属性。 使用属性窗口中的按钮来回切换。

  5. 7.再次选择窗体。 选择窗体右下角的拖动图柄。 该图柄是窗体右下角的一个白色小正方形。

    windows-form-drag-handle.png?view=vs-2022

    8.拖动手柄以调整窗体的大小,使其更宽且更高一些。 如果查看属性窗口,你会发现“Size”属性已更改 。 还可通过更改“Size”属性来更改窗体的大小。

  6. 9.在 Visual Studio IDE 的左侧,选择“工具箱”选项卡。如果没有看到,则从菜单栏中选择“查看”>“工具箱”或者按 Ctrl+Alt+X 键 。

  7. 10.选择容器旁边的小三角形符号以打开该组。

    toolbox-container-table-layout-panel.png?view=vs-2022

  8. 11.双击“工具箱”中的“TableLayoutPanel” 。 你也可以将控件从工具箱拖动到窗体上。 TableLayoutPanel 控件将显示在窗体中。

    table-layout-format-added.png?view=vs-2022

     12.添加 TableLayoutPanel 后,如果窗体中出现标题为“TableLayoutPanel 任务”的窗口,请点击窗体内的任何位置来关闭此窗口。

  9. 13.选择“TableLayoutPanel”。 可以通过查看属性窗口来验证选择了什么控件。

    table-layout-panel-properties.png?view=vs-2022

  10. 14.选中“TableLayoutPanel”后,找到“Dock”属性,其值为“无” 。 选择下拉箭头,然后选择“填充”,即下拉菜单中间的大按钮。

    dock-property.png?view=vs-2022

    15.“停靠”是指窗口连接另一个窗口或区域所用的一种方式。TableLayoutPanel 现在填充整个窗体。 如果再次调整窗体的大小,则 TableLayoutPanel 将保持停靠状态,并自行调整大小以适合窗体。

  11. 16.在窗体中,选择“TableLayoutPanel”。 右上角有一个黑色的小三角形按钮。选择该三角形以显示控件的任务列表。

    table-layout-panel-tasks.png?view=vs-2022

  12. 17.选择“编辑行和列”,以显示“列和行样式”对话框 。

  13. 选择“Column1”,将其大小设置为 15%。 确保已选中“百分比”按钮。

  14. 18.选择“Column2”并将其设置为 85%。

    layout-column-row-styles-size-percent.png?view=vs-2022

  15. 19.在“列和行样式”对话框顶部的“显示”中,选择“行” 。 将“Row1”设置为 90% 并将“Row2”设置为 10%。 选择“确定”,保存所做更改。

    TableLayoutPanel 现在具有一个大的顶部行、一个小的底部行、一个小的左侧列和一个大的右侧列。

    form-layout.png?view=vs-2022

布局已完成。

 备注:在运行应用程序之前,请通过选择“全部保存”工具栏按钮来保存应用。 或者,要保存应用,请从菜单栏中选择“文件”>“全部保存”(或按 Ctrl+Shift+S 键 )。 最佳做法是尽早且经常保存。

4、向应用程序添加控件

图片查看器应用程序使用 PictureBox 控件来显示图片。 它使用一个复选框和多个按钮来管理图片和背景,以及关闭应用。 你将在 Visual Studio IDE 中从“工具箱”中添加 PictureBox 和复选框。

  1. 1.打开 Visual Studio。 图片查看器项目显示在“打开最近使用的文件”下。

  2. 2.在 Windows 窗体设计器中,选择在前面的教程中添加的 TableLayoutPanel。 检查 tableLayoutPanel1 是否显示在属性窗口中 。

  3. 3.在 Visual Studio IDE 的左侧,选择“工具箱”选项卡。如果没有看到,则从菜单栏中选择“查看”>“工具箱”或者按 Ctrl+Alt+X 键 。 在“工具箱”中,展开“公共控件”。

  4. 4.双击“PictureBox”,将 PictureBox 控件添加到窗体。 Visual Studio IDE 会将 PictureBox 控件添加到 TableLayoutPanel 的第一个空单元格中。

  5. 5.选择新的 PictureBox 控件以将其选中,然后选择新 PictureBox 控件上的黑色三角形以显示其任务列表。

    picture-box-tasks-dialog.png?view=vs-2022

  6. 6.选择“在父容器中停靠”,这会将 PictureBox 的“Dock”属性设置为“填充” 。 可以在属性窗口中查看该值。

  7. 7.在 PictureBox 的属性窗口中,将“ColumnSpan”属性设置为“2” 。 PictureBox 现在填充这两列。

  8. 8.将“BorderStyle”属性设置为“Fixed3D” 。

  9. 9.在 Windows 窗体设计器中选择“TableLayoutPanel” 。 然后,在“工具箱”中双击“CheckBox”项,以添加新的 CheckBox 控件 。 由于 PictureBox 占据了 TableLayoutPanel 中的前两个单元格,因此 CheckBox 控件将添加到左下方的单元格。

  10. 10.选择“Text”属性,然后输入“拉伸” 。

    checkbox-named-stretch.png?view=vs-2022

5、在布局面板中添加按钮

到目前为止,控件已添加到 TableLayoutPanel 中。 以下步骤演示了如何在 TableLayoutPanel 中向新的布局面板添加四个按钮。

  1. 1.选择窗体上的“TableLayoutPanel”。 打开“工具箱”,选择“容器” 。 双击“FlowLayoutPanel”,将新控件添加到 TableLayoutPanel 的最后一个单元格。

  2. 2.将 FlowLayoutPanel 的“Dock”属性设置为“填充” 。 可以通过选择黑色三角形,然后选择“在父容器中停靠”来设置此属性。
    3.FlowLayoutPanel 是一个容器,它将其他控件按顺序排列在一行中。

  3. 4.选择新的“FlowLayoutPanel”,然后打开“工具箱”并选择“公共控件” 。 双击“按钮”项以添加一个名为“button1”的按钮控件 。

  4. 5.再次双击“按钮”以添加其他按钮。 IDE 将调用下一个“button2”。

  5. 6.以这种方式再添加两个按钮。 另一种方法是选择“button2”,然后选择“编辑”>“复制”或按 Ctrl+C 键 。 接下来,在菜单栏上,选择“编辑”>“粘贴”或按 Ctrl+V 键 。 粘贴按钮的副本。 此时再次粘贴该副本。 请注意,IDE 会将“button3”和“button4”添加到 FlowLayoutPanel。

  6. 7.选择第一个按钮,并将其“Text”属性设置为“显示图片” 。

  7. 8.分别将后面三个按钮的“Text”属性设置为“清除图片”、“设置背景色”和“关闭” 。

  8. 9.若要调整按钮的大小并进行排列,请选择“FlowLayoutPanel”。 将“FlowDirection”属性设置为“RightToLeft” 。

    10.这些按钮会自行与单元格的右侧对齐,并颠倒其顺序,以使“显示图片”按钮位于右侧。 可以在 FlowLayoutPanel 周围拖动按钮,按任意顺序排列它们。

  9. 11.选择“关闭”按钮以将其选中。 然后,要同时选择其余按钮,请在按住 Ctrl 键的同时选择它们。

  10. 12.在属性窗口中,将“AutoSize”属性设置为“True” 。 调整按钮大小以适应其文本。

你可以运行程序以了解控件的外观。 选择 F5 键,选择“调试”>“开始调试”,或选择“开始”按钮 。 你添加的按钮还未执行任何操作。

6、更改控件名称

窗体上有四个按钮,在 C# 中的名称分别为“button1”、“button2”、“button3”和“button4” 。 在 Visual Basic 中,任何控件名称的第一个字母都默认大写,所以这些按钮的名称为“Button1”、“Button2”、“Button3”和“Button4” 。 使用以下步骤为它们指定包含更多信息的名称。

  1. 1.在窗体上,选择“关闭” 按钮。 如果你仍选择了所有按钮,请按 Esc 键取消选择。

  2. 2.在属性窗口中查找“(名称)” 。 将名称更改为“closeButton”。

    close-button-name-property.png?view=vs-2022

    3.IDE 不接受包含空格的名称。

  3. 将其他三个按钮重命名为“backgroundButton” 、 “clearButton”和“showButton” 。 你可通过选择“属性” 窗口中的控件选择器下拉列表来验证这些名称。 新的按钮名称将出现。

可以更改任何控件的名称,如 TableLayoutPanel 或复选框。

7、添加对话框组件

你的应用可以通过组件打开图片文件并选择背景色。 组件类似于控件。 使用“工具箱”向窗体添加组件。 使用属性窗口设置其属性。

与控件不同,向窗体添加组件不会添加可见项。 相反,这将提供可使用代码触发的某些行为。 例如,组件可打开“打开文件”对话框。

在此部分,你将向窗体添加 OpenFileDialog
 组件和 
ColorDialog 组件。

  1. 1.选择 Windows 窗体设计器(“Form1.cs [Design]”) 。 然后打开“工具箱”并选择“对话框”组 。

  2. 2.双击“OpenFileDialog”向窗体添加一个名为“openFileDialog1”的组件 。

  3. 3.双击“ColorDialog”,添加一个名为 colorDialog1 的组件 。 该组件在 Windows 窗体设计器的底部显示为图标。

    components-window-forms-designer.png?view=vs-2022

  4. 4.选择“openFileDialog1”图标并设置以下两个属性:

    • 将“Filter”属性设置为以下值:

      控制台复制

      JPEG Files (*.jpg)|*.jpg|PNG Files (*.png)|*.png|BMP Files (*.bmp)|*.bmp|All files (*.*)|*.*
      
    • 将 Title 属性设置为以下内容:“选择一个图片文件”

    “Filter”属性设置指定“选择图片”对话框显示的类型 。

8、为控件添加事件处理程序

在此部分,为控件添加事件处理程序。 发生操作(如选择按钮)时,应用程序会调用事件处理程序。

  1. 1.打开 Visual Studio。 图片查看器项目显示在“打开最近使用的文件”下。

  2. 2.在 Windows 窗体设计器中,并双击“显示图片”按钮 。 或者,可以选择窗体上的“显示图片”按钮,然后按 Enter 键 。

    3.Visual Studio IDE 会在主窗口中打开一个选项卡。 在 C# 中,选项卡名为 Form1.cs。 如果使用的是 Visual Basic,则该选项卡名为 Form1.vb。

    4.此选项卡显示窗体后面的代码文件。

    show-picture-button-code.png?view=vs-2022

     备注

    Form1.vb 选项卡可能会将“showButton”显示为“ShowButton” 。

  3. 5.使用此页右上角的编程语言控件查看 C# 代码片段或 Visual Basic 代码片段。
     

    docs-programming-language-control.png?view=vs-2022

  4. 6.再次选择“Windows 窗体设计器”选项卡,然后双击“清除图片”按钮以打开其代码 。 对于剩余两个按钮,重复此操作。 Visual Studio IDE 每次都会向窗体的代码文件添加一个新方法。

  5. 7.双击 Windows 窗体设计器中的 CheckBox 控件以添加 checkBox1_CheckedChanged() 方法 。 选中或清除复选框时,它将调用此方法。

    private void clearButton_Click(object sender, EventArgs e)
    {
    }
    
    private void backgroundButton_Click(object sender, EventArgs e)
    {
    }
    
    private void closeButton_Click(object sender, EventArgs e)
    {
    }
    
    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
    }
    

方法(包括事件处理程序)可以根据你的需要命名。 使用 IDE 添加事件处理程序时,IDE 将基于控件的名称和正在处理的事件创建一个名称。

例如,名为 showButton 的按钮的 Click 事件称为 showButton_Click() 或 ShowButton_Click()。 如果要更改代码的变量名,请右键单击代码中的变量,然后选择“重构”>“重命名” 。 将重命名代码中变量的所有实例。 

9、编写代码以打开对话框

“显示图片”按钮使用 OpenFileDialog 组件显示图片文件。 此过程添加用于调用该组件的代码。

Visual Studio IDE 提供了一个名为 IntelliSense 的强大工具。 当你在键入时,IntelliSense 会建议可能的代码。

  1. 1.在 Windows 窗体设计器中,并双击“显示图片”按钮 。 IDE 将光标移到 showButton_Click() 或 ShowButton_Click() 方法内。

  2. 2.在两个大括号 { } 之间或 Private Sub... 和 End Sub 之间的空行上键入一个 i。 这时会打开一个 IntelliSense 窗口。

    intellisense-window.png?view=vs-2022

  3. 3.“IntelliSense”窗口应该会突出显示 if 一词。 选择 Tab 键以插入 if

  4. 4.选择“true”,然后针对 C# 键入 op 以进行覆盖,或者针对 Visual Basic 键入 Op 以进行覆盖。

    show-button-handler-true-selected.png?view=vs-2022

    IntelliSense 显示 openFileDialog1。

  5. 5.选择 Tab 键以添加 openFileDialog1。

  6. 6.在 openFileDialog1 后直接键入句点 (.) 或点号。 IntelliSense 提供 OpenFileDialog 组件的所有属性和方法。 开始键入 ShowDialog 并选择 Tab 键。ShowDialog() 方法将显示“打开文件”对话框。

  7. 7.在 ShowDialog 中的“g”后立即添加括号 ()。 代码应该为 openFileDialog1.ShowDialog()

  8. 8.对于 C#,添加一个空格,然后添加两个等于号 (==)。 对于 Visual Basic,添加一个空格,然后使用单个等号 (=)。

  9. 9.添加另一个空格。 使用 IntelliSense 输入 DialogResult。

  10. 10.键入一个点,在 IntelliSense 窗口中打开 DialogResult 值。 输入字母 O,然后选择 Tab 键插入“OK”。

    第一行代码应会完成。 对于 C#,输出应如下所示。

    if (openFileDialog1.ShowDialog() == DialogResult.OK)

    对于 Visual Basic,此代码行应如下所示。

    If OpenFileDialog1.ShowDialog() = DialogResult.OK Then

  11. pictureBox1.Load(openFileDialog1.FileName);  
    

    11.可以复制并粘贴或使用 IntelliSense 添加这些代码行。 最终的 showButton_Click() 方法应与以下代码类似。

    private void showButton_Click(object sender, EventArgs e)
    {
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            pictureBox1.Load(openFileDialog1.FileName);  
        }
    }
    

           12.将下面的注释添加到代码中。

private void showButton_Click(object sender, EventArgs e)
{
    // Show the Open File dialog. If the user clicks OK, load the
    // picture that the user chose.
    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        pictureBox1.Load(openFileDialog1.FileName);
    }
}

最佳做法是始终注释代码。 通过代码注释,可以在将来更轻松地理解和维护代码。

10、为其他控件编写代码

如果现在运行应用程序,可以选择“显示图片”。 图片查看器将打开“打开文件”对话框,你可在其中选择要显示的图片。

在此部分,为其他事件处理程序添加代码。

  1. 1.在 Windows 窗体设计器中,并双击“清除图片”按钮 。 在大括号中添加代码。

    private void clearButton_Click(object sender, EventArgs e)
    {
        // Clear the picture.
        pictureBox1.Image = null;
    }
    
  2. 2.双击“设置背景色”按钮,并在大括号中添加代码。

    private void backgroundButton_Click(object sender, EventArgs e)
    {
        // Show the color dialog box. If the user clicks OK, change the
        // PictureBox control's background to the color the user chose.
        if (colorDialog1.ShowDialog() == DialogResult.OK)
            pictureBox1.BackColor = colorDialog1.Color;
    }
    
  3. 3.双击“关闭”按钮,并在大括号中添加代码。

    private void closeButton_Click(object sender, EventArgs e)
    {
        // Close the form.
        this.Close();
    }
    
    
  4. 4.双击“拉伸”复选框,并在大括号中添加代码。

    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        // If the user selects the Stretch check box, 
        // change the PictureBox's
        // SizeMode property to "Stretch". If the user clears 
        // the check box, change it to "Normal".
        if (checkBox1.Checked)
            pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
        else
            pictureBox1.SizeMode = PictureBoxSizeMode.Normal;
    }
    

11、运行应用程序

编写应用程序时,你随时都可以运行该应用程序。 在前面部分添加代码后,图片查看器将完成。 与前面的教程一样,使用以下方法之一运行应用程序:

  • 选择 F5 键。
  • 在菜单栏上,依次选择“调试”>“开始调试” 。
  • 在工具栏上,选择“开始”按钮。

此时将显示标题为“图片查看器”的窗口。 测试所有控件。

  1. 1.选择“设置背景色”按钮。 随即打开“颜色”对话框。

    color-dialog-box.png?view=vs-2022

  2. 2.选择一种颜色来设置背景色。

  3. 3.选择“显示图片”以显示图片。

    run-picture-viewer.png?view=vs-2022

  4. 4.选择“拉伸”,然后取消选择。

  5. 5.选择“清除图片”按钮以确保显示内容消失。

  6. 6.选择“关闭”以退出应用。

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉特思米(gitusme)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值