在表单之间传递值

时间:2012-12-26 09:21:35

标签: c# winforms session data-transfer

如您所知,我们在WinForm中没有会话。我的项目中有几种形式(客户,服务,运营商......),我从运营商处获取了一些值(运营商名称,运营商姓名和个人资料图片地址)。我想在运行时将这些值存储在某个地方,每当我需要它时,我都可以从存储它的位置获取它。

有一种简单的方法吗?

3 个答案:

答案 0 :(得分:1)

我认为这些是长期网络开发者的话。我听说你是我的朋友。我去过那里......

Web编程的会话对象只是解决在无状态环境中保存状态的问题的一种解决方法。另一方面,winforms编程没有这个问题。您的应用程序包含所有保存其状态信息的对象。

至于将信息从一种形式传递到另一种形式:

  1. 您可以在接收表单构造函数上定义要传递的参数 参数。然后在接收表单中定义局部变量以保存对这些对象的引用。
  2. 您可以在接收表单上设置单独的方法 发送参数并从发件人表单中调用它。
  3. 您可以在发件人上公开信息 表格(或其他一些地方),并在你收到表格时从表格中获取 需要它。
  4. 哪一个最好?完全取决于您的业务案例和应用程序逻辑。

答案 1 :(得分:1)

我认为最简单的方法是创建一个class,可以从包含所需数据的表单中访问

示例

// Class1.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace myNameSpace
{
    class Class1
    {
        public static string Name = "";
        public static string LastName = "";
        public static string ProfilePictureaddress = "";
    }
}

使用此功能,无论何时您想存储或检索数据,都可以使用myNameSpace.Class1。例如,如果您想要存储到Name,则可以使用myNameSpace.Class1.Name = "value";。这会将Name设置为value

谢谢,
节日快乐! :)

答案 2 :(得分:0)

你也可以使用这样的项目属性:

  

//写

     

Properties.Setting.Default [“key”] = value;

     

Properties.Setting.Default.Save();

     

//读

     

value = Properties.Setting.Default [“key”];