在两种形式上使用和实例化一个类

时间:2012-10-16 13:55:58

标签: c# winforms oop

我正在努力解决以下问题。 我目前有三种形式,我的主要和一个主要类。

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

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

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

在我的主程序中,我有:

 public class Program
 {
        public StockControl StockSystem = new StockControl("The Book Shop", 20);
 }

我希望能够在frmSuppliers和frmMain中访问StockControl中的方法。

我知道这可能是一个N00b问题 - 但它一直困扰着我!

3 个答案:

答案 0 :(得分:5)

您需要将其作为构造函数参数传递给其他表单,然后将其存储在私有字段中。

答案 1 :(得分:1)

声明它是静态的

public static StockControl StockSystem = new StockControl("The Book Shop", 20);

并用作

Program.StockSystem 

答案 2 :(得分:1)

您应该为每个表单添加一个类型为StockControl的字段,并将其公开,或者为其添加getter / setter。这意味着将以下几行添加到每个表单中:

private StockControl _stockCtrl;
public StockControl StockCtrl
{
   get { return _stockCtrl; }
   set { _stockCtrl = value; }
}

在每个表格的鳕鱼中,您都可以访问您的StockControl。但如果你不指定它,它将是空的(即null)。这是我在打开表单之前要做的事情。如果您使用的是主要方法:

frmSuppliers frmToOpen = new frmSuppliers();
frmSuppliers.StockCtrl = StockSystem;
frmSuppliers.Show();