一个委托的实例

一、首先我们声明一个委托

delegate void tvDelegate(object sender, TreeViewEventArgs e, string action);

二、我们写了两个方法

 private void doUserManage(object sender, TreeViewEventArgs e, string action)
        {
            splitContainer1.Panel2.Controls.Clear();
            RichTextBox rtb 
= new RichTextBox();
            rtb.Dock 
= System.Windows.Forms.DockStyle.Fill;
            rtb.Text 
= tvMainMenu.SelectedNode.Text;
            splitContainer1.Panel2.Controls.Add(rtb);

        }

        
private void doNewsManage(object sender, TreeViewEventArgs e, string action)
        {
            splitContainer1.Panel2.Controls.Clear();
            News.NewsManage myControl 
= new NewsManage();
            myControl.Dock 
= System.Windows.Forms.DockStyle.Fill;
            splitContainer1.Panel2.Controls.Add(myControl);
        }


三、接着我们就可以在我们的方法中使用这个委托了
 private void tvMainMenu_AfterSelect(object sender, TreeViewEventArgs e)
        {
            tvDelegate tvd ;
            
switch (tvMainMenu.SelectedNode.Text.Trim())
            {
                
case "用户管理":
                    tvd 
= new tvDelegate(doUserManage);//委托调用不同的方法,但是要注意他们的方法签名和返回值必须相同
                    break;
                
case "新闻频道":
                    tvd 
= new tvDelegate(doNewsManage);
                    
break;
                
default:
                    tvd 
= new tvDelegate(doNewsManage);
                    
break;
            }
            tvd(sender, e, tvMainMenu.SelectedNode.Text);
//执行这个委托
        }

感觉也好像没有啥要说的。具体就不罗嗦了,有啥不懂的就留言吧!
posted @ 2008-01-22 15:50  海底的鱼  阅读(242)  评论(0)    收藏  举报