C#——Windows窗体

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();

        }

    }

}

  • 使用继承选择器创建继承窗体

继承窗体或其他对象的最简便方法是使用“继承选择器”对话框。通过该对话框,就可以利用已经在其他解决方案中创建的代码或用户界面。

  1. 在“解决方案资源管理器”面板的项目名称上右击,在弹出的快捷菜单中选择“添加”->“新建项”命令,打开“添加新项”对话框。
  2. 从“添加新项”对话框中选择继承的窗体后,单击“添加”按钮,打开“继承选择器”对话框。
  3. 从“继承选择器”对话框中选择添加的继承窗体的基窗体后,单击“确定”按钮,完成继承窗体的添加。

  • 在继承窗体中修改继承的空间属性

将基窗体中的相应控件的Modifiers属性设置为Public,则在继承窗体中可以修改该控件的属性。

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值