2
public static class MyExtensions
{
    public static bool TextBoxIsEmpty(TextBox txtControl, ErrorProvider eP)
    {
        if (txtControl.Text == string.Empty)
        {
            eP.SetError(txtControl, "You must Enter something!");
            return true;
        }
        else
        {
            eP.Clear();
            return false;
        }
    }
}

我在整个项目中都使用这个函数来验证一个空的文本框。它正常工作,直到我将一个用户控件添加到我的 WinForm 之一。特别是,当 Grid 的数据源发生更改时,该用户控件的一个实例被添加到我的表单中,但我收到此错误。


错误 129 以下方法或属性之间的调用不明确:'DominateVehicle.Class.MyExtensions.TextBoxIsEmpty(System.Windows.Forms.TextBox, System.Windows.Forms.ErrorProvider)' 和 'DominateVehicle.Class.MyExtensions.TextBoxIsEmpty(System .Windows.Forms.TextBox, System.Windows.Forms.ErrorProvider)' D:\Vechel_Dominate\a\DominateVehicle\frmDefectClass.cs 30 41 DominateVehicle


不知道添加用户控件和这个错误有什么关系?如果我删除 UserControl,我的代码将不起作用并且我收到错误消息。我该怎么办?

4

2 回答 2

4

我也有这个错误。

总是当我在我的项目中添加一个控件到我的一个表单时,由于对我所有扩展方法的不明确调用,我无法再编译。

最后我看到VS在同一个项目中添加了我的项目的引用,所以编译器遇到了这个问题。然后删除您的代码无济于事,因为引用仍然存在。

我可以通过从我的项目中删除这个引用来解决这个问题。也许这对其他人有帮助。

于 2014-01-30T09:08:36.117 回答
0

这个函数在两个地方定义。检查那个。编译器不知道调用哪一个。在您的解决方案中查找。这个名字会有两个功能。

于 2013-01-29T09:34:48.043 回答