1.Form窗体
Form窗体也称为窗口,是.NET框架的智能客户端技术。
①窗体的添加和删除
新建一个Windows窗体应用(.NET Framework)
如果要在项目中添加一个新窗体,可以在项目名称上右击,在弹出的快捷键菜单中选择“添加”->“windows窗体”或者“添加”->“新建项”命令
在“新添加项”对话框中,选择“Windows窗体”,输入窗体名称,单击“添加”按钮,添加windows窗体。
删除窗体,在要删除的窗体名称上右击,在弹出的快捷菜单中选择“删除”命令,即可删除窗体。
②多窗体的使用
在添加多个窗体时,其名称不能重名。
③设置启动窗体
项目的启动窗体是在Program.cs文件中设置的,其中可以改变Run()方法的参数,即可实现设置启动窗口。
Run()方法用于当前线程上开始运行标准应用程序,并使指定窗体可见。语法如下:
public static void Run(Form mainForm)
其中mainForm代表要设为启动窗体的窗体
例:
Application.Run(new Form1());
④更换窗体图标
⑤隐藏窗体的标题栏
隐藏窗体的标题栏,只需将FormBorderStyle属性设置为None即可。
⑥控制窗体的显示位置
通过窗体的StartPosition属性,设置加载窗体时窗体在显示器中的位置。
⑦设置图像背景的窗体
通过设置窗体的BackgroundImage属性,可以设置窗体的背景图片。
⑧窗体的显示与隐藏
如果要在一个窗体中通过按钮打开另一个窗体,就必须通过调用Show()方法显示窗体。
public void Show()
添加按钮,在工具箱中的公共控件中添加。
修改按钮的text
点击按钮后,打开Form2窗体
运行代码后
⑨窗体的隐藏
通过调用Hide()方法隐藏窗体
语法如下:
public void Hide()
例:
this.Hide(); //调用Hide()方法隐藏当前窗体
frmMain frm = new frmMain(); //实例化frmMain
frm.Show(); //调用Show()方法打开窗体
2.窗体事件
①Click(单击)事件
当单击窗体时,将会触发窗体的Click事件
public event EventHandler Click
例:
public Form1()
{
InitializeComponent();
this.Click += new EventHandler(Form1_Click);
}
private void Form1_Click(object sender,EventArgs e)
{
MessageBox.Show(“已经单击了窗体”);
}
②Load(加载)事件
窗体加载时,将触发窗体的Load事件。
private void Form1_Load(object sender, EventArgs e)
{
if (MessageBox.Show("是否检查窗体", "", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
{ }
}
③FormClosing(关闭)事件
窗体关闭时,触发窗体的FormClosing事件。
public Form1()
{
InitializeComponent();
this.Click += new EventHandler(Form1_Click); //FormClick事件必须加这一条才触发
this.FormClosing+=new FormClosingEventHandler(this.Form1_FormClosing);
//FormClosing事件必须加这一条才触发
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult dr = MessageBox.Show("是否关闭窗口?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (dr == DialogResult.Yes)
{
e.Cancel = false;
}
else
{
e.Cancel = true;
}
}
3.MDI窗体
①概念
多文档界面(Multiple-Document Interface)简称MDI窗体。MDI窗体用于同时显示多个文档,每个文档显示在各自的窗口中,MDI窗体中通常包含子菜单的窗口菜单,用于再窗口或文档之间进行切换。
②设置MDI窗体
如果要将某个窗体设置为父窗体,只要再窗体的属性面板中,将IsMdiContainer属性设置为True即可,如图所示。
③设置子窗口
public Form1()
{
InitializeComponent();
Form2 form2 = new Form2();
form2.Show();
form2.MdiParent = this;
}
④排列MDI子窗体
如果一个MDI窗体中有多个子窗体同时打开,假如不对其排列顺序进行调整,那么界面会非常混乱,而且不容易浏览。可以通过使用带有MdiLayout枚举的LayoutMdi()方法来排列多文档界面父窗体中的子窗体。
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 MDI
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void 加载子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
form2.MdiParent = this;
Form3 form3 = new Form3();
form3.Show();
form3.MdiParent = this;
}
private void 水平平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.TileHorizontal);
}
private void 垂直平铺ToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.TileVertical);
}
private void 层叠排列ToolStripMenuItem_Click(object sender, EventArgs e)
{
LayoutMdi(MdiLayout.Cascade);
}
}
}
4.继承窗体
继承窗体就是根据现有窗体的结构创建一个与其一模一样的新窗体。
创建继承窗体的方法有两种方法:一种是通过编程方式创建继承窗体;另一种是使用继承选择器创建继承窗体。
- 编程方式创建继承窗体
以编程方式创建继承窗体时,主要是在类定义中将引用添加到要从其继承的窗体。引用应包含该窗体的命名空间,后面跟一个句点,然后是基窗体本身的名称。
例:
创建一个Windows应用程序,默认窗体为Form1.cs
在Form1窗体上添加一个TextBox控件、一个Button控件和一个Label控件。在Button控件的click事件中添加代码,实现Label控件显示TextBox控件中输入的内容。
向项目中添加一个心得Windows窗体,命名为Form2.
修改Form2窗体代码文件中Form2类所继承的基类。
Form2窗体的原始代码如下:
namespace test
{
public partial class Form2:Form
{
}
}
修改后的代码如下:
namespace test
{
public partial class Form2:test.Form1
}
具体对比图如下图所示。
具体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 jicheng
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = textBox1.Text;
}
private void label1_Click(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
}
}
}
- 使用继承选择器创建继承窗体
继承窗体或其他对象的最简便方法是使用“继承选择器”对话框。通过该对话框,就可以利用已经在其他解决方案中创建的代码或用户界面。
- 在“解决方案资源管理器”面板的项目名称上右击,在弹出的快捷菜单中选择“添加”->“新建项”命令,打开“添加新项”对话框。
- 从“添加新项”对话框中选择继承的窗体后,单击“添加”按钮,打开“继承选择器”对话框。
- 从“继承选择器”对话框中选择添加的继承窗体的基窗体后,单击“确定”按钮,完成继承窗体的添加。
- 在继承窗体中修改继承的空间属性
将基窗体中的相应控件的Modifiers属性设置为Public,则在继承窗体中可以修改该控件的属性。