【发布时间】:2017-06-13 21:13:14
【问题描述】:
问题:我想将相同的消息写入文本框控件,就像写入日志文件一样。
我有一个调用静态方法横切类的 Windows 窗体 (Form1.cs)。在每个横切方法中,他们调用 WriteLogEntry 来更新他们正在做什么的日志文件。我想向 Form1 发回一个事件,这样我就可以将相同的日志消息写入表单上的控件。
我查看了事件,但理解不够,无法理解这些示例,也没有找到一个足够简单的示例来做我想做的事。有人可以给我看一个简单的例子,说明如何在我的代码中添加一个事件来完成这个吗?
namespace MainForm
{
public delegate void MyDel(string str);
public partial class Form1 : Form
{
public event MyDel MyEvent;
public Form1()
{
InitializeComponent();
MyEvent += new MyDel(WriteSomething);
Crosscutting.DoSomething();
}
public void WriteSomething(string message)
{
Console.WriteLine(message);
}
}
//Crosscutting.cs
public class Crosscutting
{
private static void WriteLogEntry(string message)
{
// Code to write message to log file.
}
public static void DoSomething()
{
WriteSomething obj = new WriteSomething();
// Code to do something.
WriteLogEntry("I'm doing something");
}
}
}
【问题讨论】:
-
有很多关于如何编写
Events as well as Delegates的示例,这不是要问如何做一些您可以轻松搜索并找到 1000 个示例的论坛 -
您至少应该尝试将事件添加到您的代码中。当您将收到错误或其他类型的意外结果时,请返回并寻求解决您的问题的帮助。您当前的问题没有任何问题需要解决
-
@Wannabe 你在
DoSomething()方法中有一段奇怪的代码:WriteSomething obj = new WriteSomething();- 应该删除。 -
Stack Overflow 是获得帮助的好地方。感谢 sergeyBerezovdkiy 提供的帮助。 @ModernMan,这是一个学习的地方,我说我不知道该怎么做……谢谢你责备我什么都不知道也找不到答案。