码迷,mamicode.com
首页 > Windows程序 > 详细

委托——窗体间传值150525

时间:2015-05-25 20:07:14      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

委托总结

//总结
//和outputTime();表达一样,编译器会把outputTime();编译成outputTime.Invoke();
//1 定义委托数据类型
//2 定义委托变量
//3 判断委托类型是否存在,使用委托
//if (outputTime != null)
// {
// //和outputTime();表达一样,编译器会把outputTime();编译成outputTime.Invoke();
// outputTime.Invoke();
// }
// 文件写入操作File.WriteAllText(@"aaa.text", System.DateTime.Now.ToString("yy-MM-dd hh-mm-ss"));

调试程序,在要查看的位置设置断点,F10下一步

 

一般程序,以两种方式显示时间(控制台和写入文件)

主程序:  

class Program
    {
        static void Main(string[] args)
        {
            Class1 t1 = new Class1();
            t1.outputTime = M1;
            t1.output1_time();
           

            Class2 t2 = new Class2();
            t2.outputTime = M2;
            t2.output1_time();

            Console.ReadKey();
        }
        static void M1()
        {
            Console.WriteLine("当前时间:{0}", System.DateTime.Now.ToString());
        }

        static void M2()
        {
            File.WriteAllText(@"aaa.text", System.DateTime.Now.ToString("yy-MM-dd  hh-mm-ss"));
        }
    }

类
 //定义一个委托类型
    public delegate void dele_time();
   
    public class Class1
    {
        public dele_time outputTime;
        public void output1_time()
        {
            Console.WriteLine("--------------------------------------------------");
            Console.WriteLine("--------------------------------------------------");
            if (outputTime!=null)
            {
                outputTime();
            }
                
            Console.WriteLine("--------------------------------------------------");
            Console.WriteLine("--------------------------------------------------");
        }
    }
    public class Class2
    {
        public dele_time outputTime;
        public void output1_time()
        {
            Console.WriteLine("--------------------------------------------------");
            Console.WriteLine("--------------------------------------------------");
            if (outputTime != null)
            {
                //和outputTime();表达一样,编译器会把outputTime();编译成outputTime.Invoke();
                outputTime.Invoke();
            }

            Console.WriteLine("--------------------------------------------------");
            Console.WriteLine("--------------------------------------------------");
        }
    }

 

 

 

窗体间传值代码

1 定义委托类型
public delegate void dele_chuanzhi(string str);


form1代码

 private void button1_Click(object sender, EventArgs e)
        {
            Form2 f2 = new Form2();
            f2.Show();
            f2.chuanzhi = updateBtn;
           
        }

  private void updateBtn(string str)
        {
            textBox1.Text = str;
        }



form2代码
private void textBox1_KeyUp(object sender, KeyEventArgs e)
        {
            //this.Text = textBox1.Text;
            string uInput = this.textBox1.Text;
            if (chuanzhi != null)
            {
                chuanzhi(uInput);
            }
        }

 

委托——窗体间传值150525

标签:

原文地址:http://www.cnblogs.com/lv-sally/p/4528640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!