你好,StackOverflow社区
我正在c#中处理一个c#窗口应用程序,并将一个库项目重新构建为两个,因为我想在另一个项目中使用一些类。
但是,由于我的更改,在编译时,我得到了一个错误:无法从“方法组”转换为“System.EventHandler”。一直起作用的类/方法。
该应用程序是一个复杂的映射应用程序,它使用对象、父关系和子关系、默认值、列表对象和基于自动读取CRM和Webservice WSDL信息的附加特性来执行xml / xsd映射。
下面的行给出了错误:"mappingPickListControls = new (pMappingPickList,optionMetadataCollection,ValidationRegister,imglblMandatory,tbControlToValidate_validating);
给出了控制生成器的均衡器,以确保正确的控件调用该方法来验证正确的信息。
CRMMappingPickListForm:
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:
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的老位置
发布于 2013-09-26 14:14:38
EventHandler委托具有以下定义:
public delegate void EventHandler(Object sender, EventArgs e)您的方法具有以下签名:
private void tbControlToValidate_validating(object sender, CancelEventArgs e)它们不是完全匹配的,因此不能直接将该方法分配给EventHandler委托。
此方法的调用方希望传入一个EventArgs对象,但此方法需要一个CancelEventArgs。
由于您实际上没有使用这些参数,所以最简单的选择就是将您的方法更改为:
private void tbControlToValidate_validating(object sender, EventArgs e)https://stackoverflow.com/questions/19029988
复制相似问题