我正在使用C#(visual studio)更改密码Windows窗体应用程序。这是我的应用程序的工作方式,在用户输入新密码并通过文本框验证后,新密码文本框旁会显示勾号。
我面临的问题是如何检查重新输入的密码是否与输入的新密码相同?在检查它们是否相同之后,勾选将显示向用户显示它被检查并且相同。我不想点击任何按钮来检查文本框,而是在用户停止输入后检查。我怎么能这样做?
答案 0 :(得分:4)
创建一个新的Windows窗体项目。在表单上放两个文本框,仅此而已。使用默认名称textBox1
和textBox2
将下面的代码放在Form1.cs
中(因为这是文件的默认名称)。现在,当用户按下某个键时,将进行比较。如果文本相同,则文本框的背景颜色变为绿色,否则变为红色。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
textBox1.KeyUp += textBox_Compare;
textBox2.KeyUp += textBox_Compare;
}
private void textBox_Compare(object sender, KeyEventArgs e)
{
Color cBackColor = Color.Red;
if (textBox1.Text == textBox2.Text)
{
cBackColor = Color.Green;
}
textBox1.BackColor = cBackColor;
textBox2.BackColor = cBackColor;
}
}
}
请注意,我没有使用设计器附加KeyUp事件,我在Form1的构造函数中执行了此操作:textBox1.KeyUp += textBox_Compare;
答案 1 :(得分:0)
我认为您可以使用TextChanged
侦听器功能。或keyDown
事件。
示例代码:
private System.Windows.Forms.TextBox textBox1;
private System.Windows.Forms.TextBox textBox2;
this.textBox1.TextChanged += new System.EventHandler(passwordChanged);
this.textBox2.TextChanged += new System.EventHandler(passwordChanged);
private void passwordChanged(object sender, EventArgs e)
{
String newPassword1 = textBox1.Text;
String newPassword2 = textBox2.Text;
if (!newPassword1.Equals(newPassword2))
{
textBox1.BackColor = Color.Red;
textBox2.BackColor = Color.Red;
}
else
{
textBox1.BackColor = Color.White;
textBox2.BackColor = Color.White;
}
}
答案 2 :(得分:0)
我认为您应该验证重新输入密码LostFocus
的{{1}}中的文字。在这里,您可以检查两个字段中的文本是否匹配,并显示相应的消息。此外,只有在用户完成零件时才会触发此操作。
答案 3 :(得分:0)
试试这个:
在两个文本框上添加textchanged事件 要执行此操作,请转到文本框的属性,单击“雷雨”图标,滚动到“文本已更改”双击,然后一旦文本框的文本更改,将触发事件。
private void Form1_Load(object sender, EventArgs e)
{
//label1 = your tick
label1.Visible = false;
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
//if same, show, if different, hide
if (string.Compare(textBox1.Text, textBox2.Text, true) == 0)
label1.Visible = true;
else
label1.Visible = false;
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
//if same, show, if different, hide
if (string.Compare(textBox1.Text, textBox2.Text, true) == 0)
label1.Visible = true;
else
label1.Visible = false;
}