我如何链接不同形式的列表框

时间:2015-12-29 20:00:26

标签: c# winforms listbox

`我想将列表框从一种形式链接到不同的其他形式。例如,如果我要从另一个表单添加项目,则所选项目将在我的其他表单中显示。有没有办法做到这一点?

 private void pb_hd1_Click(object sender, EventArgs e)
 {

        int index = hm_drinks.FindIndex(drinks => drinks.Name.Equals(hd1.Text));
        pendinglist.Items.Add("1 \t" + hm_drinks[index].Name.PadLeft(20) + hm_drinks[index].Price.ToString("C").PadLeft(70));
        order.Equals(pendinglist.Items);
        total += hm_drinks[index].Price;
 }

这是将项目添加到列表框的内容,但该项目仅显示在此表单的列表框中。我希望以其他形式展示我目前的问题。

1 个答案:

答案 0 :(得分:1)

您可以将其存储在singleton对象的变量中,并从表单到表单读取该值。

以下示例

Singleton类:

public class MySingletonClass
{
    private static MySingletonClass _instance;        

    /// <summary>
    /// Get the singleton instance.
    /// </summary>
    public static MySingletonClass Instance
    {
        get
        {
            if (_instance == null)
            {
                _instance = new MySingletonClass();
            }

            return _instance;
        }
    }

    /// <summary>
    /// Property to be shared across application.
    /// </summary>
    public string MySharedProperty { get; set; }

    // Private default constructor
    private MySingletonClass() { }
}

表单1,其中包含一个文本框,然后是一个用于打开表单的按钮2.按钮单击事件将文本框值保存到单例。:

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

    private void _openFormTwoButton_Click(object sender, EventArgs e)
    {
        MySingletonClass.Instance.MySharedProperty = textBox1.Text;

        Form2 form2 = new Form2();
        form2.Show();
    }
}

表单2,其中包含文本框。它从单例实例加载值:

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();

        textBox1.Text = MySingletonClass.Instance.MySharedProperty;
    }
}