欢迎光临散文网 会员登陆 & 注册

[C#学习笔记16]WF项目结构、Partial部分类、窗体与事件委托使用分析

2020-06-07 21:08 作者:技术龙的传人  | 我要投稿

WinForm开发学习内容:UI设计、数据库应用、基于C#+ADO.NET+SQLSever的系统开发

一、WinForm项目与窗体控件

    创建窗口应用程序

    拖控件放到窗体界面中

    窗体界面按F7进入窗体后台程序

    双击界面中的控件自动生成控件单机事件方法及后台生成将click事件和事件方法关联

    新建类MyForm.cs并继承父窗体Form:

        public class MyForm:Form注意引用命名空间using System.Windows.Froms

1.部分类的使用partial

    好处:让自动生成的代码后置,我们编写程序的代码显得更加简洁。

    特点:在最后编译的时候,仍然编译成一个窗体类。

form类构造方法里初始化所有控件

主窗体使用FromMain命名

2.窗体和控件的基本使用、Event事件

    理解事件:

        在.NET平台上面,给我们所用的这些控件,封装了很多的事件,所谓事件,就是对用户操作的某一个行为,进行封装。

        比如,当用户单击一个按钮的时候,单击这个动作,已经被封装成了Click事件,那么我们只要把这个事件拿出来,

        当用户触发单击这个动作的时候,也就是这个事件被调用了,我们就可以在这个事件中,完成我们需要的任务。

界面设计右键显示菜单:

    ContextMenuScript控件拖入窗体界面中,添加相应菜单选项,并在窗体属性中找到相应名字修改成右键对应菜单显示

按键属性中闪电符号里面列出了按键的所有事件,手动将控件的事件和事件方法关联(委托)

    this.btnTest.Click += new System.EventHandler(this.btnMyTest_Click);

事件方法:

        private void btnMyTest_Click(object sender, EventArgs e)

        {

            //sender表示当前控件的对象

            //Button btn = sender as Button;

            Button btn = (Button)sender;

            MessageBox.Show(btn.Tag.ToString());

            //可以动态的取消事件的关联

            this.btnTest.Click -= new System.EventHandler(this.btnMyTest_Click);

        }

双击闪电图表下的对应事件,会自动产生事件方法并将控件的事件和事件方法关联

       鼠标放到控件上事件方法的实现:

         private void btnTest_MouseEnter(object sender, EventArgs e)

        {

            //Button btn = (Button)sender;

            //MessageBox.Show(btn.Tag.ToString());

        }

取消的事件,通过闪电图表下找到对应事件单机选择重置即可,注意事件方法还保留着,若不移除再次自动产生事件方法会重新生成并+_1后缀事件方法,不会覆盖之前的,可以手动在闪电图表下对应事件右侧选择可选的事件方法。

窗体常用事件:

    load窗口控件初始化完成后要执行的事件(一般不用)

        //窗体所有控件和初始化完毕后要执行的事件,我们通常不用

        private void FrmMain_Load(object sender, EventArgs e)

        {

            //不建议在这里编写初始化内容...

        }

    FormClosed窗口关闭后发生

         private void FrmMain_FormClosed(object sender, FormClosedEventArgs e)

        {

            //可以在这个地方编写你要做的其他任务...

            MessageBox.Show("窗体已经关闭");

        }

    FormClosing窗体关闭前发生(关闭前加提示框确认是否要关闭窗体)

         //窗体关闭之前发生的

        private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)

        {

            DialogResult result = MessageBox.Show("确认要关闭窗体吗?", "关闭确认", 

                MessageBoxButtons.OKCancel,

                   MessageBoxIcon.Question);

            if (result == DialogResult.Cancel)//用户取消关闭

            {

                e.Cancel = true;

            }

        }


[C#学习笔记16]WF项目结构、Partial部分类、窗体与事件委托使用分析的评论 (共 条)

分享到微博请遵守国家法律