您的位置:首页 > 编程语言 > C#

我对c#委托的浅见 使用情景- 两个窗体间的调用操作

2016-11-17 09:14 225 查看
开始学习委托,对委托不能理解。仅限于阅读书本上的例子,置于什么时候用委托,怎么用,心里一直不解。机缘巧合,阅读了博友的文章,地址
http://blog.csdn.net/qiujialongjjj/article/details/8229308
有点感悟。自己试着写了个类似的。希望高手们指教。

目的是实现,点击form1上按钮,隐藏form1,然后点击form2上的按钮,让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.Windows.Forms;

namespace WindowsFormsApplication1

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

            

        }

        private void Form1_Load(object sender, EventArgs e)

        {

            var f2 = new Form2();

            

            //方法 1  事件   f2.changed += new Form2.form2Handle(changeShowOrHide);

            f2.f2handle = new Form2.form2Handle(changeShowOrHide); //方法 2 委托  

            f2.f2changeBtnTextHandle = changeBtnText;

            f2.Show();

        }

       public static int count = 0;

        private void button1_Click(object sender, EventArgs e)

        {

            count++;

            if (count%2==0)

            {

                changeShowOrHide(true);

            }

            else

            {

                changeShowOrHide(false);

            }

        }

        private void changeShowOrHide(bool isshow)

        {

            if (isshow)

            {

                this.Show();

            }

            else

            {

                this.Hide();

            }

        }

        private void changeBtnText(string st)

        {

            button1.Text = st;

        }

    }

}

form2代码:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication1

{

    public partial class Form2 : Form

    {

        public delegate void form2Handle(bool b);

        public delegate void changeBtnTextHandle(string text);

        //方法 1  事件  public event form2Handle changed; 

        public form2Handle f2handle;//方法 2 委托   

        public changeBtnTextHandle f2changeBtnTextHandle;

        public Form2()

        {

            InitializeComponent();

        }

        private void button1_Click(object sender, EventArgs e)

        {

            //方法 1  事件 changed(true);

            f2handle(true);//方法 2 委托  

            f2changeBtnTextHandle("隐藏");

            Form1.count++;

        }

    }

}

这应该是委托的一种使用场景。还有什么场景使用,希望大侠不吝赐教!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# 委托 事件 form
相关文章推荐