紧接着上一篇文章,我已经学习了控制台的使用,以及创建不同应用的Helloworld程序,这一篇文章,我介绍Windows窗体应用程序的简单实用,按照调用流程一步一步的操作,希望能帮助初学者也能一步一步的搭建起自己的第一个应用。由于本人水平有限,文章中难免有介绍不足的地方,敬请谅解。
首先,打开vs2017--》新建--》项目--》点击确定:
然后,项目已经创建成功了,截图如下:
其中,白色面板部分就是我们所创建的项目的初始界面,我们可以点击运行项目,红色框柱的部分就是我们运行出来的桌面应用的界面。
上面运行成功的是一个空白的界面,在后面,会介绍如何创建我们想要的应用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp4
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
点击左侧的工具箱,我们可以添加我们想要的控件,可以拖动到面板上,面板上的布局需要自行设计。
工具箱有以下的类型:
每一个工具箱里的控件比较多,可以依次使用每个控件,知道有什么控件可用。
有这么多的控件,我们如何添加自己需要的控件呢?就是拖动到面板上就可以了,操作如下图:
添加了两个按钮,双击按钮我们可以进入控件的方法体代码部分,截图如下:
双击工程目录被控住的部分,我们就跳转到描述控件信息的代码:
原始代码详情解读:
namespace WindowsFormsApp4
{
partial class Form1
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(311, 55);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(109, 45);
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button2
//
this.button2.Location = new System.Drawing.Point(311, 171);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(109, 41);
this.button2.TabIndex = 1;
this.button2.Text = "button2";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(800, 450);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
}
}
其中,我们来看一下button1的信息设置,我们可以通过设置部分的代码设置按钮的基本属性。
// button1
//
this.button1.Location = new System.Drawing.Point(311, 55);//按钮位置信息
this.button1.Name = "button1";//按钮名称
this.button1.Size = new System.Drawing.Size(109, 45);//按钮的大小
this.button1.TabIndex = 0;//按钮的索引
this.button1.Text = "button1";//按钮上显示的名称
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
以下是我从本地导入图片到PictureBox的截图,操作是右键单击PictureBox,然后点击选择图像,然后选择本地资源,点击确定,选择相应的图片就可以了。
我们可以拖动窗口调整大小使得适应图片,也可以在属性里设置自动适应图片大小,截图如下。
在前面部分,我们分别介绍了如何创建项目,如何使用控件,以及源代码的简单剖析,在后面,我们将介绍一个打开和保存图片的实例,这样可以更深入的理解WindowsForm程序的工作原理。
具体的操作步骤如下:
1. 选择新建项目,选择Windows 窗体应用,并命名为showPicture。
2.从工具箱中拖动两个Button和一个PictureBox到面板上,并调整位置对齐为如下的设计:
3.拖动调整大小
4. 设计按钮
首先,右键单击按钮,然后选择属性,然后在右下角属性框设置名称为打开图片;同理,button2设置名称为保存图片。
然后,修改PictureBox的背景色
最后,修改结果如下
1、Picturebox控件SizeMode属性
(1)Normal模式:如果图片大于Picturebox控件大小,图片不能完全显示。
(2)AutoSize:自动调整Picturebox控件大小去适应图片的大小,图片可以完全显示。
(3)StretchImage:Picturebox控件大小不变,自动调整图像适应控件。
5. 添加代码
双击打开图片按钮,添加如下代码:
OpenFileDialog file = new OpenFileDialog();
file.InitialDirectory = ".";
file.Filter = "所有文件(*.*)|*.*";
file.ShowDialog();
if (file.FileName != string.Empty)
{
try
{
pathname = file.FileName; //获得文件的绝对路径
this.pictureBox1.Load(pathname);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
双击保存图片按钮,跳转到按钮调用的代码,添加红框部分的代码:
SaveFileDialog save = new SaveFileDialog();
save.ShowDialog();
if(save.FileName!=string.Empty)
{
pictureBox1.Image.Save(save.FileName);
}
完整的Form1的代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace showPicture
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private string pathname = string.Empty; //定义路径名变量
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog file = new OpenFileDialog();
file.InitialDirectory = ".";
file.Filter = "所有文件(*.*)|*.*";
file.ShowDialog();
if (file.FileName != string.Empty)
{
try
{
pathname = file.FileName; //获得文件的绝对路径
this.pictureBox1.Load(pathname);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
private void button2_Click(object sender, EventArgs e)
{
SaveFileDialog save = new SaveFileDialog();
save.ShowDialog();
if(save.FileName!=string.Empty)
{
pictureBox1.Image.Save(save.FileName);
}
}
}
}
然后,点击启动
弹出如下对话框之后,单击打开图片
选择图片结果如下图,PictureBox已经自适应图片的大小。
然后选择保存图片,设置名称
然后就有了两张图片在文件夹中
这就是一个简单的Windows窗体应用程序的使用介绍。有了这个基础之后,以后有可能可以通过这个应用,传入图片,调用我们的人脸识别产品的接口,去实现不同应用场景的需求。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。