1

私はC#(ビジュアルスタジオ)でパスワード変更ウィンドウフォームアプリケーションに取り組んでいます。これが私のアプリケーションの動作です。ユーザーが新しいパスワードを入力し、テキストボックスの検証に合格すると、新しいパスワードのテキストボックスの横にチェックマークが表示されます。

私が直面している問題は、再入力されたパスワードが入力されている新しいパスワードと同じであることをどのように確認できるかということです。それらが同じであることを確認した後、チェックマークが表示され、チェックされて同じであることをユーザーに示します。ユーザーが入力をやめたらチェックする代わりに、ボタンをクリックして両方のテキストボックスをチェックしたくありません。どうやってやるの?

4

4 に答える 4

4

新しいWindowsフォームプロジェクトを作成します。フォームに2つのテキストボックスを配置します。それ以上はありません。のデフォルト名を使用し、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;

于 2012-11-30T06:33:06.377 に答える
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;
    }
}
于 2012-11-30T06:24:07.153 に答える
0

LostFocus再入力パスワードのテキストを検証する必要があると思いますTextBox。ここでは、両方のフィールドのテキストが一致するかどうかを確認し、適切なメッセージを表示できます。また、これは、ユーザーがパーツを完了したときに1回だけトリガーされます。

于 2012-11-30T06:36:16.880 に答える
0

これを試して:

両方のテキストボックスにtextchangedイベントを追加するこれを行うには、テキストボックスのプロパティに移動し、[Thunderstorm]アイコンをクリックし、[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;
        }
于 2012-11-30T12:33:33.803 に答える