目录
WinForm 是 Windows Form 的简称,是基于.NET Framework 平台的客户端(PC软件)开发技术,一般使用 C# 编程。在VS2019中,C# WinForm 编程需要创建「Windows窗体应用程序」项目。Windows 窗体应用程序是 C# 语言中的一个重要应用,也是 C# 语言最常见的应用。
我将在此篇文章简述一些WinForm的基础使用 ,如添加窗口,控件添加,页面跳转等基础操作。对于WinForm其入门门槛并不高,也比单纯的代码有趣的多,泛用性很广,简单易用,可以直观的显示想要的效果
添加窗口
添加两个界面Form1,Form2
摆放控件
将自己需要的控件摆放到窗口中,设置内容,属性等
实现页面切换
主页面代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 学生注册
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnjump_Click(object sender, EventArgs e)
{
Form2 fm2 = new Form2();//创建对象,变量名自定义
fm2.Show();//显示Form2窗体
this.Hide();//主窗体隐藏
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
//关闭提示弹窗
DialogResult to = MessageBox.Show("你确认要关闭吗", "关闭提示",
MessageBoxButtons.YesNo, MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1);
if (to == DialogResult.Yes)
{
//关闭程序,不添加关闭窗口时程序还在运行,添加后关闭窗口时关闭程序
Application.Exit();
}
}
}
}
关闭需要设置事件
子页面代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 学生注册
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void btnback_Click(object sender, EventArgs e)
{
//返回提示弹窗
DialogResult to = MessageBox.Show("你确认要返回登录吗", "返回提示",
MessageBoxButtons.YesNo,MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1);
if (to == DialogResult.Yes)
{
Form1 fm1 = new Form1();
fm1.Show();
this.Hide();
}
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}
}
}
弹窗解析
DialogResult to = MessageBox.Show("你确认要返回登录吗", "返回提示",
MessageBoxButtons.YesNo,MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1);
可以在子页面添加返回提示弹窗增加内容 通过DialogResult类型也可以达到一系列的显示目的
MessageBox就是信息提示弹窗,括号内的就是这个弹窗的一些内容,属性设置
MessageBox.Show("提示信息", "信息标题",弹窗按钮,弹窗提示图片,弹窗默认选中的按钮);
这些内容属性可以按需求设置
页面跳转效果展示
QQ录屏20231214184833
不同方式的页面跳转
Form1代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 学生注册
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnjump_Click(object sender, EventArgs e)
{
Form2 fm2 = new Form2();
this.Hide();
fm2.ShowDialog();
//退出当前线程上的消息循环,并关闭该线程上的所有窗口
//这一步很重要,否则最后可能无法将所有进程关闭。最好是在跳转页面后,将
//之前的页面退出。
Application.ExitThread();
}
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
DialogResult to = MessageBox.Show("你确认要关闭吗", "关闭提示",
MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
if (to == DialogResult.Yes)
{
Application.Exit();
}
}
}
}
Form2的代码也需要更改:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 学生注册
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void btnback_Click(object sender, EventArgs e)
{
{
Form1 fm1 = new Form1();
fm1.Show();
Application.ExitThread();
}
}
private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
Application.Exit();
}
}
}