首页上一页 1 下一页尾页 1 条记录 1/1页
C#开发委托
发表在C#图书答疑
2010-12-14
是否精华
是
否
版块置顶:
是
否
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 委托列表
{
public partial class Form1 : Form
{
public delegate void MyDelegate(string text);
MyDelegate mainDelegate;
private void method1(string text)
{
textBox1.AppendText("方法一被调用(" + text + ")\r\n");
}
private void method2(string text)
{
textBox1.AppendText("方法二被调用(" + text + ")\r\n");
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (mainDelegate == null)
{
mainDelegate = this.method1;
}
else
{
mainDelegate = mainDelegate + new MyDelegate(method1);
}
}
private void button2_Click(object sender, EventArgs e)
{
if (mainDelegate == null)
{
mainDelegate = this.method2;
}
else
{
mainDelegate+=method2;
}
}
private void button3_Click(object sender, EventArgs e)
{
if (mainDelegate == null)
return;
mainDelegate -= method1;
}
你好,这事委托中的一个程序,我有个问题我不明白:就是当我运行这个程序的时候,如果委托列表中有两个方法(就是把这个方法从委托列表中删除掉),我点击删除的话就不会报错,但是如果委托列表中只有一个方法的时候,我点击删除(就是把这个方法从委托列表中删除掉),程序就会报错,具体错误为:未将对象引用设置到对象的实例。请问这是什么问题呢?
静候回答,不胜感激!明日科技的粉丝。
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace 委托列表
{
public partial class Form1 : Form
{
public delegate void MyDelegate(string text);
MyDelegate mainDelegate;
private void method1(string text)
{
textBox1.AppendText("方法一被调用(" + text + ")\r\n");
}
private void method2(string text)
{
textBox1.AppendText("方法二被调用(" + text + ")\r\n");
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (mainDelegate == null)
{
mainDelegate = this.method1;
}
else
{
mainDelegate = mainDelegate + new MyDelegate(method1);
}
}
private void button2_Click(object sender, EventArgs e)
{
if (mainDelegate == null)
{
mainDelegate = this.method2;
}
else
{
mainDelegate+=method2;
}
}
private void button3_Click(object sender, EventArgs e)
{
if (mainDelegate == null)
return;
mainDelegate -= method1;
}
你好,这事委托中的一个程序,我有个问题我不明白:就是当我运行这个程序的时候,如果委托列表中有两个方法(就是把这个方法从委托列表中删除掉),我点击删除的话就不会报错,但是如果委托列表中只有一个方法的时候,我点击删除(就是把这个方法从委托列表中删除掉),程序就会报错,具体错误为:未将对象引用设置到对象的实例。请问这是什么问题呢?
静候回答,不胜感激!明日科技的粉丝。