如何从另一个对象中更改表单的组件?

Sve*_*ven 1 c#

我有一个对象,在我的form1窗口中调用.如何从此对象中的form1-object更改任何内容,例如标签或进程栏?

Hen*_*man 5

为您的对象提供对表单的引用将是一个糟糕的(循环)设计.使用接口或委托(回调).

// untested code
class MyObjectClass
{
   public delegate void Reportback(int percentage);

   public void DoSomething(Reportback callBack) { ...; callback(i*100F/total); ...}
}


class Form1: Form
{
   private void reportProgress(int percent) { ...; progressbar1.value = percent; }

   void SomeMethod() {  myObject1.DoSomething(reportprogress); }
}
Run Code Online (Sandbox Code Playgroud)