简体   繁体   English

C#-以其他形式填充Listview-VS2015

[英]C# - Fill Listview in a different form - VS2015

I have 2 forms. 我有两种形式。 Form 1 which shows a ListView and Form 2 a button called button1. 窗体1显示一个ListView,窗体2显示一个名为button1的按钮。 What I'm trying to do is when the button on form 2 is clicked. 我想做的是单击窗体2上的按钮时。 I want it to fill the Listview on form1. 我希望它填充form1上的Listview。

The listview has 3 columns; listview有3列; Flavour Quantity Sub-Total 风味数量小计

When the button1 is pressed, it should show Vanilla, 1, £1.00 in the listview on form1. 按下button1时,它将在form1的列表视图中显示Vanilla,1,£1.00

I'm able to do this if the listview is on the same form as the button, but not if it's on different forms. 如果列表视图与按钮具有相同的形式,则可以执行此操作,但是如果表单具有不同的形式,则不能。

Form1 表格1

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

Form2 表格2

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

private void button1_Click(object sender, EventArgs e)
    {
        ListViewItem lvi = new ListViewItem("Vanilla");
        lvi.SubItems.Add("1");
        lvi.SubItems.Add("£1.00");
        listView1.Items.Add(lvi);
    }

Create a reference of form1 in form2 like this: 像这样在form2创建form1的引用:

class Program {
    static void Main() { 
        var form1 = new Form1();
        var form2 = new Form2(form1);
    }
}

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

    public void DoStuff(ListViewItem lvi) {
        // TODO: Stuff
    }
}

public partial class Form2: Form
{
    private Form1 _form1;

    public form2(Form1 form1)
    {
        InitializeComponent();
        _form1 = form1;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        ListViewItem lvi = new ListViewItem("Vanilla");
        lvi.SubItems.Add("1");
        lvi.SubItems.Add("£1.00");
        listView1.Items.Add(lvi);

        _form1.DoStuff(lvi);
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM