一个委托的实例
一、首先我们声明一个委托
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);
}
{
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);//执行这个委托
}
{
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);//执行这个委托
}
感觉也好像没有啥要说的。具体就不罗嗦了,有啥不懂的就留言吧!

浙公网安备 33010602011771号