用列表验证文本框输入
本文关键字:输入 文本 验证 列表 | 更新日期: 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)
- 将
Convert.ToInt32
的结果分配给inMatningTextBox.Text
。我想你是想比较一下。 - 您正在比较
int
和string
值 - 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。