【发布时间】:2015-10-14 13:27:11
【问题描述】:
当我删除带有退格键的文本框中的数字时,我想保存该数字,以便可以将其与其他文本框中的其他数字进行比较。我怎么做? 这是我要放入的代码:
List<TextBox> box1;
private void Form1_Load(object sender, EventArgs e)
{ box1 = this.Controls.OfType<TextBox>()
.Where(x => x.Name.StartsWith("textBox1")).ToList();
foreach (TextBox t in box1)
t.TextChanged += textBox_TC1;
}
private void textBox_TC1(object sender, EventArgs e)
{
TextBox textBox = (TextBox)sender;
if (textBox.Text.Length == 1 && allwhite == 0)
{
bool sameText = box1.Any(x => x.Text == textBox.Text &&
!x.Equals(textBox));
if (sameText)
textBox.BackColor = System.Drawing.Color.Red;
}
else if (textBox.Text.Length == 0)
{
textBox.BackColor = System.Drawing.Color.White;
}
}
我想将我的新代码放在“else if (textBox.Text.Length == 0)”中,因为我只能在文本框中删除带有退格键的文本,并且最大长度为 1。 当我退格时,我想将该数字与 box1 中的所有其他文本框进行比较,然后如果该数字仅等于另一个文本框,它将使另一个文本框背景色变为白色。我不知道如何保存一个即将被删除的号码,所以如果你能帮助我,我会很高兴。
【问题讨论】:
-
您可以存储以前的值(作为字段),当
TextChanged上升时,您可以获取以前的值,检查它是否少一个数字等。或者您可以使用另一个事件(例如@ 987654323@) 来检测按下退格键的时刻。 -
你是想比较密码还是什么?
-
您应该使用
TextChanged事件,在TextChanged结束时,您应该将当前值保留在Tag的TextBox属性之类的位置,并在您想与它进行比较时使用它其他值。您不应使用TextChanged以外的任何事件,因为用户可以在不使用键盘的情况下删除或粘贴值。 -
@Sinatr 我不仅有 1 个文本框,还有 81 个在列表中,所以如果我要存储特定文本框的数字,我需要一些可以检查这些文本框是哪些列表的东西因为我所有的文本框都在 2 个不同的列表中,我有 18 个列表。而且我不知道该怎么做。
-
@RezaAghaei 哦,我错过了这一点。还是谢谢。