c#的类中怎么样调用窗体中的事件

.Net技术 码拜 4年前 (2016-07-12) 202次浏览
窗体中代码如下..

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的先后执行关系?调用过程?
说的有点不清楚

你这个form跟类互相调用的话 委托随便就解决了
其他就真纠结了


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c#的类中怎么样调用窗体中的事件
喜欢 (0)
[1034331897@qq.com]
分享 (0)