0

私はそれにいくつかのフィールドを持つフォームを持っています:

folderNameLabel
folderTitle
folderDescription
folderCategory

ユーザーが を押す前に、OKすべてのフィールドが ではないかどうかを確認したいと思います==""arrayasパラメータを受け取って値を返す関数を作りたかったのboolですが、書き方がわかりません...

4

2 に答える 2

0

次のことができます。

private void btnOK_Click(object sender, EventArgs e)
{
    bool fieldsFilled = ValidateStrings(folderNameLabel.Text, 
                                        folderTitle.Text, 
                                        folderDescription.Text, 
                                        folderCategory.Text);
    if (fieldsFilled)
        DialogResult = DialogResult.OK;
    else
    {
        // Report errors
    }
}

private bool ValidateStrings(params string[] items)
{
    bool result = true;
    for (int i = 0; i < items.Length && result; i++)
        result &= !String.IsNullOrWhitespace(items[i]);

    return result;
}

質問:ユーザーが見逃したフィールドをどのように伝えますか?

あなたの場合、「すべてのフィールドに入力する必要があります」というメッセージを表示できますが、オプションのフィールドが1つしかないため、機能しなくなりました。これが、通常、上記のようなことをしない理由です。

于 2012-09-14T09:01:35.967 に答える
0
public bool Validate(List<string> parameters)
{
   foreach(string parameter in parameters)
   {
        if(String.IsNullOrEmpty(parameter))
        {
            return false;
        }
   }
   return true;
}
于 2012-09-14T08:59:58.363 に答える