0

空のテキストボックスの色を変更しようとしています。このフォームに複数のテキストボックスがあり、ユーザーが[送信]をクリックしたときに空のテキストボックスを強調表示したいと思います。すべてのテキストボックスに値があるかどうかを確認した後、btnSubmit関数にあるループを以下に記述しました。誰かが私のためにこのループを完了するのを手伝ってもらえますか?

foreach (Control txtbxs in this.Controls)
{
    if (txtbxs is TextBox)
    {
        var TBox = (TextBox)txtbxs;
        if (TBox.Text == string.Empty)
        {
            TBox.ForeColor = Color.Red;
        }
    }

}
lblTopError.Text = "Please fill in the missing billing information";
pnlTopError.Visible = true;
4

4 に答える 4

2

文字列が空の場合ForeColor、赤で表示するテキストがないため、を変更しても何も起こりません。使用を検討しBackColor、テキストが入力されたときにイベントを発生させて、適切なに戻すことを忘れないでくださいBackColor

于 2012-11-14T15:37:33.120 に答える
2

これがあなたがやろうとしていることであるなら、あなたはエラープロバイダーを使うことを考えましたか?これは、ユーザーに信号を送り、情報を入力するように促すのに役立ちます。

        errorProvider= new  System.Windows.Forms.ErrorProvider();
        errorProvider.BlinkRate = 1000;
        errorProvider.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.AlwaysBlink;


private void TextValidated(object sender, System.EventArgs e)
    {
       var txtbox = Sender as TextBox;

        if(IsTextValid(txt))
        {
            // Clear the error, if any, in the error provider.
            errorProvider.SetError(txtbox, String.Empty);
        }
        else
        {
            // Set the error if the name is not valid.
            errorProvider.SetError(txtbox, "Please fill in the missing billing information.");
        }
    }
于 2012-11-14T15:44:19.317 に答える
0

次のように、任意のCSSを適用できます。

TBox.Attributes.Add("style", "color: red; border: solid 1px #FC3000")

次の代わりにこれを使用します:

TBox.ForeColor = Color.Red;
于 2012-11-14T15:41:15.520 に答える
0

このフォームにはテキストボックスがあまりないので、簡単なルートをたどって、次のようにコードを記述しました。

List<TextBox> boxes = new List<TextBox>();
if (string.IsNullOrWhiteSpace(txtFname.Text))
{
    //highlightTextBox= txtFname;
    boxes.Add(txtFname);
}
if (string.IsNullOrWhiteSpace(txtLname.Text))
{
    //highlightTextBox = txtLname;
    boxes.Add(txtLname);
}
if (string.IsNullOrWhiteSpace(txtAddOne.Text))
{
    //highlightTextBox = txtAddOne;
    boxes.Add(txtAddOne);
}
if (string.IsNullOrWhiteSpace(txtTown.Text))
{
    //highlightTextBox = txtTown;
    boxes.Add(txtTown);
}
if (string.IsNullOrWhiteSpace(txtPostCode.Text))
{
    //highlightTextBox = txtPostCode;
    boxes.Add(txtPostCode);
}

foreach (var item in boxes)
{
    if (string.IsNullOrWhiteSpace(item.Text))
    {
        item.BackColor = Color.Azure;
    }
}
lblTopError.Text = "Please fill in the missing billing information highlighted below";
pnlTopError.Visible = true;
于 2012-11-14T16:39:27.140 に答える