当我使用退格键删除文本框中的数字时,我想保存该数字,以便将其与其他文本框中的其他数字进行比较。我怎么做? 这就是我想要把它放在代码:使用退格键删除的号码
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;
}
}
我希望把我的新代码“否则,如果(textBox.Text.Length == 0)”,因为我只能删除与退格文本在我的文本框和最大长度为1. 当我退格的东西,我想比较这个数字与box1中的所有其他文本框,然后如果该数字等于只有一个其他文本框,它会使该其他文本框背白色。我不知道如何保存一个即将被删除的号码,所以如果你能帮助我,我会非常开心。
可以存储先前值(作为字段),当'TextChanged'是惜售你可以把以前的值,检查是否有一个数量少,等等。或者您可以使用另一个事件(例如'KeyDown')来检测按下Backspace时的时间。 – Sinatr
你想比较密码什么的? –
您应该使用'TextChanged'事件,并且在'TextChanged'结束时,您应该将当前值保存在您的'TextBox'的'Tag'属性的某个位置,并在您想将其与其他值进行比较时使用它。除了'TextChanged'之外,您不应该使用任何事件,因为用户可以在不使用键盘的情况下删除或粘贴值。 –