第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

驗(yàn)證多個(gè)文本框的文本?

驗(yàn)證多個(gè)文本框的文本?

C#
阿晨1998 2023-07-22 16:04:34
我有一個(gè) WinForm(c#),組框中有 10 個(gè)文本框應(yīng)該只允許用戶輸入數(shù)字 1 到 100: -- 所有文本框都在一個(gè) GroupBox 中 -- 如果有幫助的話如何將下面提到的代碼應(yīng)用于多個(gè)文本框?    TextBox tb = sender as TextBox;    if (tb != null)    {     int i;     if (int.TryParse(tb.Text, out i))     {      if (i >= 0 && i <= 100)      return;     }    }    MessageBox.Show("Please enter a number from 1 - 100");單擊“添加”后,如果用戶輸入的數(shù)字超過(guò) 100 或什么都沒(méi)有,則會(huì)彈出一個(gè)警告窗口
查看完整描述

5 回答

?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊

您可以為離開(kāi)事件定義一個(gè)方法,并將該方法設(shè)置為屬性窗口中每個(gè)文本框的離開(kāi)事件:


private void TextBoxGroup_Leave(object sender, TextBox e)

{

    if (Convert.ToInt32(e.Text) < 1 || Convert.ToInt32(e.Text) > 100)

    {

        MessageBox.Show("Please enter a number from 1 - 100");

        e.Text = string.Empty;

    }

}


查看完整回答
反對(duì) 回復(fù) 2023-07-22
?
青春有我

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊

下面是使用文本框的離開(kāi)事件的示例。此外,文本框按鍵事件用于僅允許數(shù)字。將每個(gè)文本框Leave和KeyPress事件連接到下面的文本框和事件,它應(yīng)該按照您所描述的方式工作。正如其他人提到的,有很多方法可以做到這一點(diǎn)。


private void tb_Course_Leave(object sender, EventArgs e) {

  TextBox tb = sender as TextBox;

  if (tb.Text == "")

    return;

  if (int.TryParse(tb.Text, out int value)) {

    if (value >= 0 && value <= 100) {

      return;

    }

  }

  MessageBox.Show("Please enter a VALID number from 1 - 100");

  tb.Text = "";

}



private void tb_Course_KeyPress(object sender, KeyPressEventArgs e) {

  e.Handled = !char.IsDigit(e.KeyChar);


查看完整回答
反對(duì) 回復(fù) 2023-07-22
?
慕森卡

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊

您可以循環(huán)遍歷 GroupBox 中的每個(gè)控件,并檢查哪些是文本框:


ForEach (Control tb in gb.Controls) //gb is a reference your GroupBox object

{

  if tb is TextBox

    {

        int i;

        if (int.TryParse(tb.Text, out i))

        {

            if (i >= 0 && i <= 100)

            return;

        }

    }

    MessageBox.Show("Please enter a number from 1 - 100");

}

在缺乏關(guān)于您正在做什么的更多背景的情況下,很難優(yōu)化您的驗(yàn)證過(guò)程,但這回答了您的問(wèn)題。


查看完整回答
反對(duì) 回復(fù) 2023-07-22
?
冉冉說(shuō)

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超1個(gè)贊

如果您想驗(yàn)證多個(gè)組框中文本框的輸入,您可以嘗試此操作。


 private void ValidateInputOfControls(Control.ControlCollection[] controlsArray)

    {          

        foreach (Control.ControlCollection controlCollection in controlsArray)

        {

            foreach (Control control in controlCollection)

            {

                if (control is TextBox)

                {

                    int result;

                    if (int.TryParse(control.Text, out result))

                    {

                        if (!(result >= 0 && result <= 100))

                        {

                            MessageBox.Show("Please enter a number from 1 - 100 in field " + control.Name);


                        }

                    }

                    else

                    {

                        MessageBox.Show("Please enter a number from 1 - 100 in field " + control.Name);

                    }

                 }

            }               

        }

    }

您需要做的就是將組框的控件添加到 Control.ControlCollection 數(shù)組中,然后調(diào)用該方法。請(qǐng)參閱下面的示例。


Control.ControlCollection[] controls = { groupBox1.Controls, groupBox2.Controls };

ValidateInputOfControls(controls);


查看完整回答
反對(duì) 回復(fù) 2023-07-22
?
HUWWW

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊

對(duì)于復(fù)雜的形式MessageBox.Show可能會(huì)變得相當(dāng)煩人:

  • 它不會(huì)將用戶指向錯(cuò)誤的字段

  • 它一一顯示錯(cuò)誤,您可能還有更多不正確的輸入

還建議的方法“允許”用戶通過(guò)單擊“添加”按鈕來(lái)失敗。

我建議使用ErrorProvider將用戶指向失敗的輸入,并在模型(在您的情況下 - 所有輸入)無(wú)效時(shí)禁用按鈕。您甚至可以限制用戶在提供錯(cuò)誤輸入時(shí)不要留下字段:)

您可以閱讀Windows 窗體中的用戶輸入驗(yàn)證指南,它概述了 WindowsForms 中的驗(yàn)證工具。

public partial class Form1 : Form

? ? {

? ? ? ? private HashSet<TextBox> validatedInputs = new HashSet<TextBox>();

? ? ? ? private int inputsCount;


? ? ? ? public Form1()

? ? ? ? {

? ? ? ? ? ? InitializeComponent();

? ? ? ? ? ? button1.Enabled = false;

? ? ? ? ? ? foreach (var tb in groupBox1.Controls.OfType<TextBox>())

? ? ? ? ? ? {

? ? ? ? ? ? ? ? tb.Validating += allTextBoxs_ValidatingAndEditing;

? ? ? ? ? ? ? ? tb.TextChanged += allTextBoxs_ValidatingAndEditing;

? ? ? ? ? ? ? ? inputsCount++;

? ? ? ? ? ? }

? ? ? ? }


? ? ? ? private void allTextBoxs_ValidatingAndEditing(object sender, EventArgs e)

? ? ? ? {

? ? ? ? ? ? if (sender is TextBox tb)

? ? ? ? ? ? {

? ? ? ? ? ? ? ? if (!int.TryParse(tb.Text, out int value) || value < 0 || value > 100)

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? if (e is CancelEventArgs ce)

? ? ? ? ? ? ? ? ? ? ? ? ce.Cancel = true;

? ? ? ? ? ? ? ? ? ? errorProvider1.SetError(tb, "Value must be in range [0..100]");

? ? ? ? ? ? ? ? ? ? validatedInputs.Remove(tb);

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? else

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? errorProvider1.SetError(tb, null);

? ? ? ? ? ? ? ? ? ? validatedInputs.Add(tb);

? ? ? ? ? ? ? ? }


? ? ? ? ? ? ? ? setAddButtonEnabled();

? ? ? ? ? ? }

? ? ? ? }


? ? ? ? private void setAddButtonEnabled() => button1.Enabled = validatedInputs.Count == inputsCount;

? ? }

http://img2.sycdn.imooc.com/64bb8ddf0001b67103340169.jpg

請(qǐng)注意,此實(shí)現(xiàn)的限制非常嚴(yán)格,用戶甚至無(wú)法關(guān)閉表單,直到輸入正確的值:)



查看完整回答
反對(duì) 回復(fù) 2023-07-22
  • 5 回答
  • 0 關(guān)注
  • 230 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)