c#中有关委托事件的问题

csdnwy1258 2012-10-06 08:52:34
我想在一个类里调用主窗体中的控件,所以采用的了委托和事件,但是在执行过程中textBox1.Text有值却不能在窗体控件中显示,请教各位指点,下面是我做的一个简单的代码,贴出来请大家帮忙看看,谢谢!

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 demon
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Class1 cla = new Class1();
cla.FormDisplay();
}

string str = "";
public void Display(int ii)
{
textBox1.Text += ii.ToString();
}

}
}



Class类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace demon
{
class Class1
{

public delegate void Datadelegate(int str);
public event Datadelegate Dataevent;

int[] idata = { 12, 13, 24, 15, 16, 23, 14, 10, 22, 18 };
public void Statr ()
{

for (int i = 0; i < 10;i++ )
{

if ( idata[i]< 20)
{
if (Dataevent != null)
{
Dataevent(idata[i]);

}
}
}
}

public void FormDisplay()
{
Form1 f = new Form1();
Dataevent += f.Display;
Statr();
}
}
}
...全文
172 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
真相重于对错 2012-10-06
  • 打赏
  • 举报
回复
{
Form1 f = new Form1();//此form非彼form
你又新开了一个form1 ,而不是程序启动时的form1一,不知你明白了没
csdnwy1258 2012-10-06
  • 打赏
  • 举报
回复
但是在这儿注册这个方法是不行的啊[Quote=引用 6 楼 的回复:]

public void FormDisplay()
{
Form1 f = new Form1();//此form非彼form

Dataevent += f.Display;
Statr();
}
[/Quote]
真相重于对错 2012-10-06
  • 打赏
  • 举报
回复
public void FormDisplay()
{
Form1 f = new Form1();//此form非彼form

Dataevent += f.Display;
Statr();
}
csdnwy1258 2012-10-06
  • 打赏
  • 举报
回复
那如果我要在另一类里触发这个事件,该怎么用啊
[Quote=引用 3 楼 的回复:]

如果你能搞清楚 button1.Click += xxxx,你就算明白了
[/Quote]
csdnwy1258 2012-10-06
  • 打赏
  • 举报
回复
那如果我要在另一类里触发这个事件,该怎么用啊[Quote=引用 2 楼 的回复:]

能给我详细讲讲原因么,我很想搞明白····谢谢
[Quote=引用楼主 的回复:]
我想在一个类里调用主窗体中的控件,所以采用的了委托和事件,但是在执行过程中textBox1.Text有值却不能在窗体控件中显示,请教各位指点,下面是我做的一个简单的代码,贴出来请大家帮忙看看,谢谢!

using System;
using System.Collect……
[/Quote]
bdmh 2012-10-06
  • 打赏
  • 举报
回复
如果你能搞清楚 button1.Click += xxxx,你就算明白了
csdnwy1258 2012-10-06
  • 打赏
  • 举报
回复
能给我详细讲讲原因么,我很想搞明白····谢谢
[Quote=引用楼主 的回复:]
我想在一个类里调用主窗体中的控件,所以采用的了委托和事件,但是在执行过程中textBox1.Text有值却不能在窗体控件中显示,请教各位指点,下面是我做的一个简单的代码,贴出来请大家帮忙看看,谢谢!

using System;
using System.Collections.Generic;
using System.ComponentModel;
u……
[/Quote]
bdmh 2012-10-06
  • 打赏
  • 举报
回复
你应该在Form1 的类中去绑定Dataevent 事件
Class1 cla = new Class1();
cla.Dataevent += xxxx
leeya66 2012-10-06
  • 打赏
  • 举报
回复
委托不懂啊呵呵
xiongxyt2 2012-10-06
  • 打赏
  • 举报
回复
csdnwy1258 2012-10-06
  • 打赏
  • 举报
回复
哦,明白···
但是在使用委托事件的时候,注册事件应该在什么地方注册啊
如果我要在另一类里触发这个事件,该怎么用呢?
谢谢
[Quote=引用 9 楼 的回复:]

{
Form1 f = new Form1();//此form非彼form
你又新开了一个form1 ,而不是程序启动时的form1一,不知你明白了没
[/Quote]

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧