私はそれにいくつかのフィールドを持つフォームを持っています:
folderNameLabel
folderTitle
folderDescription
folderCategory
ユーザーが を押す前に、OK
すべてのフィールドが ではないかどうかを確認したいと思います==""
。array
asパラメータを受け取って値を返す関数を作りたかったのbool
ですが、書き方がわかりません...
次のことができます。
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つしかないため、機能しなくなりました。これが、通常、上記のようなことをしない理由です。
public bool Validate(List<string> parameters)
{
foreach(string parameter in parameters)
{
if(String.IsNullOrEmpty(parameter))
{
return false;
}
}
return true;
}