使用List验证文本框输入

时间:2014-05-12 08:57:39

标签: c#

我正在尝试创建各种密码系统..我是一个包含列表的类。它看起来像这样:

  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中的List中记下正确的数字。这就是我试图做的事情,我无法让它发挥作用。表单中按钮的代码如下所示:

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'个错误。

2 个答案:

答案 0 :(得分:0)

您正在尝试将字符串(文本框中的文本)与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。

答案 1 :(得分:0)

看起来有一些小问题:

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

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