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;
        }
    }
}

空のテキストボックスを検証するために、プロジェクト全体でこの関数を使用しています。WinFormsの1つに1つのユーザーコントロールを追加するまで、正常に機能します。特に、グリッドのデータソースが変更されると、そのユーザーコントロールのインスタンスがフォームに追加されますが、このエラーが発生します。


エラー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

私もこのエラーがありました。

プロジェクトのコントロールをフォームの 1 つに追加すると、すべての拡張メソッドの呼び出しがあいまいなため、コンパイルできなくなりました。

最終的に、VS が自分のプロジェクトの参照を同じプロジェクトに追加したため、コンパイラに問題が発生しました。参照がまだそこにあるため、コードを削除しても役に立ちません。

この参照をプロジェクトから削除することで問題を解決できました。多分これは他の誰かを助けるでしょう。

于 2014-01-30T09:08:36.117 に答える
0

この関数は 2 か所で定義されています。それを確認します。コンパイラは、どれを呼び出すべきかを認識していません。あなたのソリューションを見つけてください。この名前には 2 つの機能があります。

于 2013-01-29T09:34:48.043 に答える