我有两个窗体
Form1 and Form2
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace myInterface
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
}
}
我有一个这样的课程
class item
{
public string itemID { get; set; }
public string itemName { get; set; }
public decimal itemPrice{ get; set; }
}
我在Form1
中创建并使用了这样的列表List<item> myItems = new List<item>();
我已经在Form1
的操作中向myItems添加了项目我想浏览myItems并获取Form2中myItems中的项目详细信息。 我怎样才能做到这一点? 我知道如何浏览列表,显示如何从Form2访问列表myItems绰绰有余。
答案 0 :(得分:0)
您可以执行以下操作: -
Public List<item> items;
public Form2(List<item> items)
{
this.items = items;
InitializeComponent();
}
这意味着您将值传递给Form2的构造函数,您可以访问Form2中的列表
答案 1 :(得分:0)
你可以像那样实现它
public partial class Form1 : Form {
private List<item> myItems = new List<item>();
// Declare public property to let Form2 have access to myItems
public List<item> MyItems {
get {
return myItems;
}
}
...
}
...
public partial class Form2 : Form {
public void DoSomethingWithMyItems() {
// First you have to find out Form1 if you don't have it yet
Form1 myForm = Application.OpenForms.OfType<Form1>().FirstOrDefault();
// Form1 has not been found
if (null == myForm)
return;
// Get the list from Form1 via public property MyItems
List<item> myItems = myForm.MyItems;
//TODO: Do what you want with myItems
}
...
}
答案 2 :(得分:0)
只有在Form1
打开时才能访问该列表。
使用以下代码:
private void Form2_Load(object sender, EventArgs e)
{
var form1 = Application.OpenForms.OfType<Form1>().FirstOrDefault();
if(form1 !=null)
{
//form1.myItems
}
}
但请确保Form1
已打开且myItems
属性已公开。