Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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#使用表单2中的saveFileDialog将表单1中的字符串值保存到文件中_C#_Winforms_Savefiledialog - Fatal编程技术网

C#使用表单2中的saveFileDialog将表单1中的字符串值保存到文件中

C#使用表单2中的saveFileDialog将表单1中的字符串值保存到文件中,c#,winforms,savefiledialog,C#,Winforms,Savefiledialog,我需要一个作业的帮助。我有两个表单:form1有一个字符串(我在加密/解密后得到它),Form2(frmSaveFile)有一个saveFileDialog,用户将在其中浏览一个位置以将生成的字符串保存到文件中 我的问题是:如何将字符串从form1传递到form2中的savefileDialog?最终把它读回form1进行解密 以下是我的Form2代码的外观: private Form1 myForm1; private void btnBrowse_Click_1(object sen

我需要一个作业的帮助。我有两个表单:form1有一个字符串(我在加密/解密后得到它),Form2(frmSaveFile)有一个saveFileDialog,用户将在其中浏览一个位置以将生成的字符串保存到文件中

我的问题是:如何将字符串从form1传递到form2中的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);
}

以下是表格2代码:

{

....code code.....

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

}

谢谢你的帮助

好了,希望对你有所帮助

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);
             }
        }
    }
}

第二种方式:
第三种方式:
请你把代码缩短到相关部分好吗?我认为当您的问题是关于跨表单访问某些内容时,save方法的细节是不相关的。此外,如果这是一项家庭作业,请正确设置问题代码的格式,并添加家庭作业标签。请注意,已经讨论了非常类似的问题,和。谢谢你的评论地图。我缩短了我的代码,我将尝试查看您推荐的帖子。@Mapper,大多数现有答案都可以从其他表单(文本框或标签)的控件访问值。我的问题是我想要传递的字符串不是来自任何控件。这只是我创建的一个字符串,希望保存在另一个表单的文件中!感谢您分享此信息,尽管涉及来自和问题的公共属性的解决方案仍然适用-您可以通过提供公共属性以同样的方式公开您的字符串。
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);
             }
        }
    }
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);
             }
        }
    }