0

MD5 ハッシュ結果をテキスト ボックスに表示するのに問題があります。コードはコマンドラインを使用して正常に動作します。コードは次のとおりです。

private void textBox1_TextChanged(object sender, System.EventArgs e)
    {
        textBox1.Text = GetMD5HashFromFile();
    }

private static string GetMD5HashFromFile()
    {
        FileStream file = new FileStream(@"C:\Desktop\test.txt", FileMode.Open);
        System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
        byte[] retVal = md5.ComputeHash(file);
        file.Close();

        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < retVal.Length; i++)
        {
            sb.Append(retVal[i].ToString("x2"));
        }
        return sb.ToString();
    }

ハッシュを計算し、ハッシュ文字列をテキストボックスに直接表示したいと思います。プログラミングの概念が間違っているのでしょうか、それとも手順が不足していますか? ありがとう!

4

1 に答える 1

0

TextChangedイベント ハンドラーは、ユーザーが TextBox にテキストを入力したとき (またはその他Textの理由でプロパティが変更されたとき) に呼び出されます。ハッシュ文字列をTextプロパティに割り当てる場所が間違っています。

おそらくボタンクリックハンドラーなど、別の場所に配置することもできます。

<StackPanel>
    <TextBox x:Name="textBox1"/>
    <Button Content="Set Text" Click="ButtonClick"/>
</StackPanel>

private void ButtonClick(object sender, RoutedEventArgs e)
{
    textBox1.Text = GetMD5HashFromFile();
}
于 2013-06-20T09:52:51.317 に答える