如何在不同的表单中链接列表框

本文关键字:链接 列表 表单 | 更新日期: 2023-09-27 18:28:34

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

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

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

如何在不同的表单中链接列表框

您可以将其存储在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的按钮。按钮单击事件将文本框值保存到singleton。:

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,它有一个文本框。它从singleton实例加载值:

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
        textBox1.Text = MySingletonClass.Instance.MySharedProperty;
    }
}