Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在两个文本框之间进行检查_C#_Winforms_Textbox - Fatal编程技术网

C# 在两个文本框之间进行检查

C# 在两个文本框之间进行检查,c#,winforms,textbox,C#,Winforms,Textbox,我正在C#(visual studio)中开发一个更改密码的windows窗体应用程序。这就是我的应用程序的工作方式,在用户输入新密码并通过文本框验证后,新密码文本框旁边将显示一个勾号 我面临的问题是如何检查重新键入的密码是否与正在输入的新密码相同?在检查它们是否相同后,勾号将显示给用户它已被选中且相同。我不想单击任何按钮来选中这两个文本框,而是在用户停止键入后选中。我该怎么做呢?我想你可以使用TextChangedlistener函数。或keyDown事件 示例代码: private Syst

我正在C#(visual studio)中开发一个更改密码的windows窗体应用程序。这就是我的应用程序的工作方式,在用户输入新密码并通过文本框验证后,新密码文本框旁边将显示一个勾号


我面临的问题是如何检查重新键入的密码是否与正在输入的新密码相同?在检查它们是否相同后,勾号将显示给用户它已被选中且相同。我不想单击任何按钮来选中这两个文本框,而是在用户停止键入后选中。我该怎么做呢?

我想你可以使用
TextChanged
listener函数。或
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;
    }
}

我认为您可以使用
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;
    }
}

创建新的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\u Compare

创建新的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\u Compare

我认为您应该验证重新输入密码文本框的
LostFocus
中的文本。在这里,您可以检查两个字段中的文本是否匹配,并显示相应的消息。此外,当用户完成该部分时,此操作只会触发一次。

我认为您应该验证重新输入密码文本框的
LostFocus
中的文本。在这里,您可以检查两个字段中的文本是否匹配,并显示相应的消息。此外,当用户完成部件时,此操作仅会触发一次。

尝试以下操作:

在两个文本框上添加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;
        }
试试这个:

在两个文本框上添加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;
        }

为什么不在文本框的TextChanging事件中选中它,但这将检查控件何时会失去焦点,而不是在用户键入时。如何确定用户是否已停止键入?文本更改事件?对不起,我对这个有点陌生,这是我能从中看到的例子吗?它是如何工作的?我会使用其中一个关键事件,如按键按下或按键向上。当字符更改时,您可以直接执行比较为什么不在textbox的TextChangeing事件中选中它,但这将检查控件何时失去焦点,而不是在用户键入时。如何确定用户是否已停止键入?文本更改事件?对不起,我对这个有点陌生,这是我能从中看到的例子吗?它是如何工作的?我会使用其中一个关键事件,如按键按下或按键向上。当一个字符发生变化时,你可以直接执行比较。能告诉我它是如何工作的吗?我正在网上搜索,但我似乎无法理解。对不起,昨晚太晚了。。所以我就去睡觉了。。我已经修改了我的答案并提供了一个示例代码。是否可以向我展示它是如何工作的?我正在网上搜索,但我似乎无法理解。对不起,昨晚太晚了。。所以我就去睡觉了。。我已经修改了我的答案并提供了一个示例代码。是否有一个示例说明如何将LostFocus用于我的代码?是否有一个示例说明如何将LostFocus用于我的代码?在上面给出的示例中,检查两个文本框中的文本是否不相等实际上会更有效,因为比较不必比较所有字符,但在角色不匹配时停止。虽然这只是一个很小的性能提升,但它与思维方式有关;)在上面给出的示例中,检查两个文本框中的文本是否不相等实际上更有效,因为比较不必比较所有字符,而是在字符不匹配时停止。虽然这只是一个很小的性能提升,但它与思维方式有关;)