C# ';System.EventHandler';至';DevExpress.XtraEditors.Controls.ChangingEventHandler';转换错误 专用无效注册表对象事件(XElement XElement,XtraForm) { XElement fEventElement=XElement.Element(“ObjectEvents”); if(fevenelement!=null) { var fSubElement=fevenelement.Elements(); foreach(fSubElement中的var项) { 如果(!IsformEvent(item.Name.ToString())) { 控制=空; for(int i=0;i ExecuteLua(item.Value,o,args); ei.AddEventHandler(control,del);//此处获取异常 } } } } } public void ExecuteLua(字符串luastring、对象发送方、事件参数e) { 尝试 { LoadCLRPackage(); Lua[“发送方”]=(控制)发送方; Lua[“eventarg”]=e; Lua[“查看器”]=这个; Lua[“form”]=this.WinForm; Lua.DoString(luastring); } 捕获(异常扩展) { Show(exp.Message.ToString()); } }

C# ';System.EventHandler';至';DevExpress.XtraEditors.Controls.ChangingEventHandler';转换错误 专用无效注册表对象事件(XElement XElement,XtraForm) { XElement fEventElement=XElement.Element(“ObjectEvents”); if(fevenelement!=null) { var fSubElement=fevenelement.Elements(); foreach(fSubElement中的var项) { 如果(!IsformEvent(item.Name.ToString())) { 控制=空; for(int i=0;i ExecuteLua(item.Value,o,args); ei.AddEventHandler(control,del);//此处获取异常 } } } } } public void ExecuteLua(字符串luastring、对象发送方、事件参数e) { 尝试 { LoadCLRPackage(); Lua[“发送方”]=(控制)发送方; Lua[“eventarg”]=e; Lua[“查看器”]=这个; Lua[“form”]=this.WinForm; Lua.DoString(luastring); } 捕获(异常扩展) { Show(exp.Message.ToString()); } },c#,eventhandler,C#,Eventhandler,我试图从Xelement读取控件对象和事件信息,并注册控件的事件运行时 “System.EventHandler”到DevExpress.XtraEditors.Controls.ChangingEventHandler”转换异常 我怎么能修好它呢?我找到了这样的方法 private void RegisterObjectEvents(XElement xelement, XtraForm form) { XElement fEventElement = xele

我试图从Xelement读取控件对象和事件信息,并注册控件的事件运行时

“System.EventHandler”到DevExpress.XtraEditors.Controls.ChangingEventHandler”转换异常


我怎么能修好它呢?

我找到了这样的方法

    private void RegisterObjectEvents(XElement xelement, XtraForm form)
    {
        XElement fEventElement = xelement.Element("ObjectEvents");
        if (fEventElement != null)
        {
            var fSubElement = fEventElement.Elements();
            foreach (var item in fSubElement)
            {
                if (!IsformEvent(item.Name.ToString()))
                {
                    Control control = null;
                    for (int i = 0; i <= fObjectList.Count - 1; i++)
                    {
                        if (fObjectList[i].Name == GetObjectNameFromString(item.Name.ToString()))
                        {
                            control = fObjectList[i];
                            break;
                        }
                    }
                    if (control != null)
                    {
                        EventInfo ei = control.GetType().GetEvent(GetEventNameFromString(item.Name.ToString()));                            
                        EventHandler del = (o, args) => ExecuteLua(item.Value, o, args);                            
                        ei.AddEventHandler(control,del );//getting exception here
                    }
                }
            }
        }
    }

    public void ExecuteLua(string luastring,object sender , EventArgs e)
    {
        try
        {              
            Lua.LoadCLRPackage();
            Lua["sender"] = (Control)sender;
            Lua["eventarg"] = e;
            Lua["viewer"] = this;
            Lua["form"] = this.WinForm;                
            Lua.DoString(luastring);               
        }
        catch (Exception exp)
        {
            MessageBox.Show(exp.Message.ToString());
        }
    }
我就是这样使用它的

        public static Delegate ConvertDelegate(Delegate originalDelegate, Type targetDelegateType)
    {
        return Delegate.CreateDelegate(
            targetDelegateType,
            originalDelegate.Target,
            originalDelegate.Method) ;
    }   
专用无效注册表对象事件(XElement XElement,XtraForm)
{             
XElement fEventElement=XElement.Element(“ObjectEvents”);
if(fevenelement!=null)
{
var fSubElement=fevenelement.Elements();
foreach(fSubElement中的var项)
{
如果(!IsformEvent(item.Name.ToString()))
{
控制=空;
for(int i=0;i ExecuteLua(item.Value,o,args);
ei.AddEventHandler(控制,转换委托(del,tDelegate));
}
}
}
}
}

我找到了这样的方法

    private void RegisterObjectEvents(XElement xelement, XtraForm form)
    {
        XElement fEventElement = xelement.Element("ObjectEvents");
        if (fEventElement != null)
        {
            var fSubElement = fEventElement.Elements();
            foreach (var item in fSubElement)
            {
                if (!IsformEvent(item.Name.ToString()))
                {
                    Control control = null;
                    for (int i = 0; i <= fObjectList.Count - 1; i++)
                    {
                        if (fObjectList[i].Name == GetObjectNameFromString(item.Name.ToString()))
                        {
                            control = fObjectList[i];
                            break;
                        }
                    }
                    if (control != null)
                    {
                        EventInfo ei = control.GetType().GetEvent(GetEventNameFromString(item.Name.ToString()));                            
                        EventHandler del = (o, args) => ExecuteLua(item.Value, o, args);                            
                        ei.AddEventHandler(control,del );//getting exception here
                    }
                }
            }
        }
    }

    public void ExecuteLua(string luastring,object sender , EventArgs e)
    {
        try
        {              
            Lua.LoadCLRPackage();
            Lua["sender"] = (Control)sender;
            Lua["eventarg"] = e;
            Lua["viewer"] = this;
            Lua["form"] = this.WinForm;                
            Lua.DoString(luastring);               
        }
        catch (Exception exp)
        {
            MessageBox.Show(exp.Message.ToString());
        }
    }
我就是这样使用它的

        public static Delegate ConvertDelegate(Delegate originalDelegate, Type targetDelegateType)
    {
        return Delegate.CreateDelegate(
            targetDelegateType,
            originalDelegate.Target,
            originalDelegate.Method) ;
    }   
专用无效注册表对象事件(XElement XElement,XtraForm)
{             
XElement fEventElement=XElement.Element(“ObjectEvents”);
if(fevenelement!=null)
{
var fSubElement=fevenelement.Elements();
foreach(fSubElement中的var项)
{
如果(!IsformEvent(item.Name.ToString()))
{
控制=空;
for(int i=0;i ExecuteLua(item.Value,o,args);
ei.AddEventHandler(控制,转换委托(del,tDelegate));
}
}
}
}
}

我没有看到
fObjectList
的声明,它已经在类中定义和创建。我没有发送它,因为它不太重要。。我没有看到
fObjectList
的声明,它已经在类中定义和创建。我没有发送它,因为它不太重要。。