我试图学习C#和一般编程,我遇到了一个问题。我试图寻找答案,但失败了,所以我很抱歉,如果我复制了另一个话题。我有1窗体窗体(Form1),外部类(Class1),窗体上的按钮和标签。 这个类是一个简单的文件粉碎机,从点击按钮开始。 Label1.text应该从外部类更新,显示哪些文件正在被切碎。如何使用委托和事件?
我已经发现,我需要使用委托和事件来正确地发生,但我不知道如何正确使用它们。 代码在这里:
//Form1
private async void button2_Click(object sender, EventArgs e)
{
var task = new Task(() =>
{
check = true;
bool success = FileUtilities.Shred(textBox1.Text);
});
task.Start();
public void ChangeName(string text)
{
label3.Text = text;
}
//Class1
public static bool ShredFile(string filePath, bool shouldDelete = true)
{
bool success = true;
try
{
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Write);
//Label1.text = filePath; - should be like that.
我曾尝试使用public void ChangeName
访问属性,但没有奏效。我无法理解我应该在哪里创建委托,事件以及订阅此事件的位置。
更新:我已经发现了什么问题。我的程序中有几个线程,而且我无法通过我的课程访问表单上的标签。我不得不使用回调,之后订阅和事件完美地工作。谢谢Thorsten Dittmar,以显示正确的方式。
看一看委托文件。 http://stackoverflow.com/documentation/c%23/1194/delegates#t=201609141320451060485 – Jacobr365