1

課題で助けが必要です。私には2つのフォームがあります.form1には文字列があり(暗号化/復号化後に取得します)、Form2(frmSaveFile)にはsaveFileDialogがあり、ユーザーは場所を参照して生成された文字列をファイルに保存します.

私の質問は、フォーム1からフォーム2のsavefileDialogに文字列を渡すにはどうすればよいですか? そして最終的に復号化のためにそれを form1 に読み戻しますか?

Form2 コードは次のようになります。

private Form1 myForm1;
    private void btnBrowse_Click_1(object sender, EventArgs e)
    {

       myForm1 = new Form1();
      string val =  myForm1.Encrypted_TextVal;  // I try to get this val from form1 but it's null cause I call it before form1 does anything with it!

        SaveFileDialog save = new SaveFileDialog();
        if (save.ShowDialog() == System.Windows.Forms.DialogResult.OK) {

            StreamWriter write = new StreamWriter(File.Create(save.FileName));
            write.Write(val);

}

Form2 コードは次のとおりです。

{

....code code.....

 string hashDecryptedText = BitConverter.ToString(sh1.ComputeHash(textToBitArray.GetBytes(Decrypted))); // string to save in a file

}

助けてくれてありがとう

4

1 に答える 1

3

ほら、お役に立てば幸いです。

using System;
using System.Windows.Forms;
using System.IO;

namespace Stackoverflow
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        static string Hash = "Your encrytped/hash/w.e";

        Form2 form2 = new Form2(Hash);
    }

    public partial class Form2 : Form
    {
        public Form2(string Hash)
        {
             SaveFileDialog save = new SaveFileDialog();
             save.DefaultExt = ".txt";
             if (save.ShowDialog() == System.Windows.Forms.DialogResult.OK)
             {
                 using (StreamWriter write = new StreamWriter(File.Create(save.FileName)))                
                    write.Write(Hash);
             }
        }
    }
}

2 番目の方法:

public partial class Form1 : Form
    {
        public static Form1 Global;
        public Form1()
        {
            InitializeComponent();
            Global = this;
        }

        public string Hash = "Your encrytped/hash/w.e";

        Form2 form2 = new Form2();
    }

    public partial class Form2 : Form
    {
        public Form2()
        {
             SaveFileDialog save = new SaveFileDialog();
             save.DefaultExt = ".txt";
             if (save.ShowDialog() == System.Windows.Forms.DialogResult.OK)
             {
                 using (StreamWriter write = new     StreamWriter(File.Create(save.FileName)))                
                    write.Write(Form1.Global.Hash);
             }
        }
    }

3 番目の方法:

public static class DataHolder
    {
        private static string _hash;
        public static string Hash { get { return _hash; } set { _hash = value; } }
    }

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            SetHash("HASH");
        }

        public void SetHash(string hash)
        {
            DataHolder.Hash = hash;           
        }

        Form2 form2 = new Form2();

    }

    public partial class Form2 : Form
    {
        public Form2()
        {
             SaveFileDialog save = new SaveFileDialog();
             save.DefaultExt = ".txt";
             if (save.ShowDialog() == System.Windows.Forms.DialogResult.OK)
             {
                 using (StreamWriter write = new StreamWriter(File.Create(save.FileName)))                
                    write.Write(DataHolder.Hash);
             }
        }
    }
于 2013-08-01T07:50:21.453 に答える