用列表验证文本框输入

本文关键字:输入 文本 验证 列表 | 更新日期: 2023-09-27 18:02:56

我正在尝试创建各种密码系统。我有一门课,里面有一个列表。它看起来像这样:

  public class LogInList
{
    public int AnsNr { get; set; }
    public List<LogInList> GetNr()
    {
        List<LogInList> Nr = new List<LogInList>();
        Nr.Add(new LogInList { AnsNr = 101 });
        return Nr;
    }
} 

在我的表单中,我有一个按钮…当您单击它时,会弹出一个表单。你要做的是从LogInList的列表中写下正确的数字。这就是我想做的,反正我没法让它工作。表单中按钮的代码如下所示:

public partial class LogIn : Form
{
    LogInList Log = new LogInList();

    public LogIn()
    {
        InitializeComponent();
    }
        private void button1_Click(object sender, EventArgs e)
        {
            if (inMatningTextBox.Text = Convert.ToInt32(Log.AnsNr);
            {
            }
        }
    }

我一直在试图解决这个问题一段时间了…我好像去不了了。请帮帮我!我总是得到Cannot implicitly convert type 'int' to 'string'错误。

用列表验证文本框输入

看起来有一些小问题:

if (inMatningTextBox.Text = Convert.ToInt32(Log.AnsNr)
  1. Convert.ToInt32的结果分配给inMatningTextBox.Text。我想你是想比较一下。
  2. 您正在比较intstring
  3. if语句末尾有一个;

我想你想要这个:

if (inMatningTextBox.Text == Log.AnsNr.ToString())
{
}

您正在尝试比较字符串(文本框中的文本)与Int32值。您错过了应该转换为整数的内容:

if (Log.AnsNr = Convert.ToInt32(inMatningTextBox.Text)) // remove ;
{
}

或者最好使用Int32。TryParse方法检查用户输入的文本是否可以转换为整数:

private void button1_Click(object sender, EventArgs e)
{
    int value;
    if (!Int32.TryParse(inMatningTextBox.Text, out value))
    {
       // show error message, because text is not integer
       return;
    } 
    if (value == Log.AnsNr)
    {
       // do your stuff
    }
}

注意:如果你需要整数值,那么最好使用NumericUpDown控件而不是TextBox。