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

开始学习委托,对委托不能理解。仅限于阅读书本上的例子,置于什么时候用委托,怎么用,心里一直不解。机缘巧合,阅读了博友的文章,地址

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++;
        }
    }
}

这应该是委托的一种使用场景。还有什么场景使用,希望大侠不吝赐教!!!

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页