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()); } }
我试图从Xelement读取控件对象和事件信息,并注册控件的事件运行时 “System.EventHandler”到DevExpress.XtraEditors.Controls.ChangingEventHandler”转换异常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
我怎么能修好它呢?我找到了这样的方法
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
的声明,它已经在类中定义和创建。我没有发送它,因为它不太重要。。