窗体中代码如下..
public void WriteMsg(object item) { listBox1.Invoke(new Action(() => { if (listBox1.Items.Count > 30) { listBox1.Items.Clear(); } listBox1.Items.Insert(0, item); })); }
没啥功能就是相似输出日志的东西…
现在要在类(class)中调用.
假如有参数可以传值 那么本人在class中定义如下
public delegate void Write(string msg); public class xxoo { public Write write; public cw(msg) { write(msg); } }
调用的话 直接
xxoo x=new xxoo(); x.Write=WriteMsg; x.cw("admin");
是可以实现的.
不过 现在问题是这样..本人有方法是不能传参数的.. (例如调度之类的东西)
里面只有方法 例如
public class BurnTime : Quartz.IJob { public void Execute(Quartz.IJobExecutionContext context) { //本人怎么样在这里面 可以调窗体的writeMsg的方法? 前提不允许把WriteMsg提出来到类中 // 假如是这样 似乎又得把控件当参数传过去.改动太多..... } }
解决方案
55
你要想办法解耦啊
你这样类不是跟窗体完全关联到一起去了,你不如把类里的代码全部复制到窗体中算了
你这样类不是跟窗体完全关联到一起去了,你不如把类里的代码全部复制到窗体中算了
55
实例化 窗体类再调用。本人怎么感觉 逻辑有点别扭呀。
13
你这个form跟类互相调用的话 委托随便就解决了
其他就真纠结了