C# 从其他窗口访问变量窗体并将其传递给其他.exe程序:

C# 从其他窗口访问变量窗体并将其传递给其他.exe程序:,c#,winforms,variables,inheritance,path,C#,Winforms,Variables,Inheritance,Path,我对C#没有多少知识,而且已经学了一段时间了。 我想知道在其他.exe程序中是否有其他方法可以从另一个表单访问变量 在你得出结论说还有其他论坛与这个主题相关之前,是的,我在谷歌搜索了一下,找到了很多。但是我找不到一个和我想要的很接近的,或者我还没有找到。所以我决定在这里发表文章,看看在我还在寻找相关解决方案的时候,我是否能得到任何帮助 下面是我想做的一个简短的总结 用户将输入一个包含数据的.csv文件,单击浏览按钮时,该文件的路径将存储在字符串变量FilePath中 在另一个同样使用C的软件程序

我对C#没有多少知识,而且已经学了一段时间了。 我想知道在其他.exe程序中是否有其他方法可以从另一个表单访问变量

在你得出结论说还有其他论坛与这个主题相关之前,是的,我在谷歌搜索了一下,找到了很多。但是我找不到一个和我想要的很接近的,或者我还没有找到。所以我决定在这里发表文章,看看在我还在寻找相关解决方案的时候,我是否能得到任何帮助

下面是我想做的一个简短的总结

  • 用户将输入一个包含数据的.csv文件,单击浏览按钮时,该文件的路径将存储在字符串变量FilePath

  • 在另一个同样使用C的软件程序(.exe程序)中,我试图访问变量文件路径,并在.exe程序中使用它

  • *简言之,我试图访问并传递在窗口窗体中获得的数据,并将其用于其他目的

    在窗口窗体中,字符串文件路径存储在文件路径中。 因此,文件路径类似于“C:\Users\Students\Downloads\Project.csv”

    下图展示了表单中设计的UI

    //窗口窗体代码
    私有字符串文件路径;
    
    公共字符串文件路径//查找“c#进程间通信”,您可能希望使用管道在一个程序中写入数据,在另一个程序中读取数据。@Longoon12000当然,我会查找的,谢谢!看。设置非常简单(正确),非常有效,并提供异步方法。如果您有保存数据的类对象,请使用
    XmlSerializer
    类序列化类对象(不是二进制格式化程序),将流保存到MemoryStream和
    .WriteAsync()
    中的
    [MemoryStream].ToArray()
    内容。如果上下文中需要,您还可以传递CancellationToken。在接收方,只需对流进行反序列化。输入和输出流可以同时使用。另请参见:。好的。如果你遇到困难,请告诉我。
    //Window Form Codes
    private string filePath; 
    
            public string FilePath //<======= stored here
            {
                get { return filePath; }   // get method
                set { filePath = value; }  // set method
            }
    
    //string filePath;
    private void Browse_folder_Click(object sender, EventArgs e)
            {
                using (OpenFileDialog get_file_path = new OpenFileDialog())
                {
                    if (get_file_path.ShowDialog() == DialogResult.OK)
                    {
                        //Get the path of specified file
                        FilePath = get_file_path.FileName;
                        file_loc_text.Text = string.Format("{0}", filePath);                    
                        return;
                    }
                }
            }
    
    
    //.exe Program Codes
    class BrowseFolderTestStep : ABC //<=== ABC is from another .exe program
        {
             Form f = new Form();
             public override void Run()
          {
             StreamReader pathIn = File.OpenText(f.FilePath);
             pathIn.Close();
          }
    
        }