首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法从“方法组”转换为“System.EventHandler”

无法从“方法组”转换为“System.EventHandler”
EN

Stack Overflow用户
提问于 2013-09-26 13:42:48
回答 1查看 5.2K关注 0票数 2

你好,StackOverflow社区

我正在c#中处理一个c#窗口应用程序,并将一个库项目重新构建为两个,因为我想在另一个项目中使用一些类。

但是,由于我的更改,在编译时,我得到了一个错误:无法从“方法组”转换为“System.EventHandler”。一直起作用的类/方法。

该应用程序是一个复杂的映射应用程序,它使用对象、父关系和子关系、默认值、列表对象和基于自动读取CRM和Webservice WSDL信息的附加特性来执行xml / xsd映射。

下面的行给出了错误:"mappingPickListControls = new (pMappingPickList,optionMetadataCollection,ValidationRegister,imglblMandatory,tbControlToValidate_validating);

给出了控制生成器的均衡器,以确保正确的控件调用该方法来验证正确的信息。

CRMMappingPickListForm:

代码语言:javascript
运行
复制
private void tbControlToValidate_validating(object sender, CancelEventArgs e)
    {
        ValidateControl(this, (Control)sender);
    }

public CRMMappingPickListForm(Ciber.Crm.MappingCRMTo.Data.CustomOptionMetadataCollection optionMetaDataCol, Point location, Size size)
    {
        InitializeComponent();
        this.Location = new Point (location.X + (size.Width / 2) - (Size.Width / 2), location.Y + (size.Height / 2) - (Size.Height / 2));
        optionMetadataCollection = optionMetaDataCol;

        ValidationRegister = new FormValidationRegister();
        ValidationRegister.ControlValidationRegister.Add(new ControlValidation("tbConfigurationName", 1, "configuration name", 1));
        mappingPickListControls = new MappingPickListControls(pMappingPickList, optionMetadataCollection, ValidationRegister, imglblMandatory, tbControlToValidate_validating);
    }

MappingPickListControls:

代码语言:javascript
运行
复制
public MappingPickListControls(Panel pMappingPickList, CustomOptionMetadataCollection optionMetaDataCol, FormValidationRegister ValidationRegister, Bitmap imglblMandatory, EventHandler tbControlToValidate_validating) 
    {
        lblPickListValueList = new List<Label>();
        tbPickListMappedValueList = new List<TextBox>();
        foreach (CustomOptionMetadata optionMetaData in optionMetaDataCol)
        {
            AddMapping(pMappingPickList, optionMetaData, ValidationRegister, imglblMandatory, tbControlToValidate_validating);
        }
    }

我有三个项目在我的解决方案:

CRMMappingPickListFOrm:拥有所有的窗口表单,包括MappingCRMTo MappingCRMTo.Controls:有所有的表单扩展和与表单相关的类。这是我创建的新项目库。它还包括MappingPickListControls,,它是控件构建器类之一。MappingCRMTo.Data:有我喜欢在其他项目中使用的所有序列化对象、WSDL读取器、zip创建者和其他类。这是MappingPickListControls的老位置

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-26 14:14:38

EventHandler委托具有以下定义:

代码语言:javascript
运行
复制
public delegate void EventHandler(Object sender, EventArgs e)

您的方法具有以下签名:

代码语言:javascript
运行
复制
private void tbControlToValidate_validating(object sender, CancelEventArgs e)

它们不是完全匹配的,因此不能直接将该方法分配给EventHandler委托。

此方法的调用方希望传入一个EventArgs对象,但此方法需要一个CancelEventArgs

由于您实际上没有使用这些参数,所以最简单的选择就是将您的方法更改为:

代码语言:javascript
运行
复制
private void tbControlToValidate_validating(object sender, EventArgs e)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19029988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档