将委托添加到Windows窗体

时间:2017-06-13 21:13:15

标签: c# winforms events

问题:我想将相同的消息写入我写入日志文件的文本框控件。

我有一个Windows窗体(Form1.cs),它调用一个横切类的静态方法。在每个横切方法中,它们调用WriteLogEntry来更新它们正在执行的操作的日志文件。我想将一个事件发送回Form1,这样我就可以将相同的日志消息写入表单上的控件。

我已经查看了一些事件,但是对于这些例子没有足够的理解,并且没有找到一个足够简单的例子来做我想要的事情。有人可以向我展示一个如何在我的代码中添加事件来实现此目的的简单示例吗?

_example.pyd

1 个答案:

答案 0 :(得分:0)

在无法弄清楚如何使用委托回到表单后,我尝试了另一种方式。通过在" MyClass"上创建Form1的实例,我能够使用公共方法写回表单。不是我想要的方式,但它是一种现在完成它的方法。如果有人能够以更好的方式解释如何做到这一点,请这样做。

public partial class Form1 : Form
{
    private string message = string.Empty;

    public static Form1 form;

    public Form1()
    {
        InitializeComponent();

        form = this;
    }

    public void UpdateTextBox(string message)
    {
        textBox1.Text += message + Environment.NewLine;

        this.Update();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        var myClass = new MyClass();

        myClass.DoSomething();
    }
}


public class MyClass
{
    public void DoSomething()
    {
        Log("I did something");
    }

    private void Log(string message)
    {
        Console.WriteLine(message);

        Form1.form.UpdateTextBox(message);
    }
}