1

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

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 问题 - 但它整天困扰着我!

4

3 回答 3

5

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

于 2012-10-16T13:57:39.827 回答
1

将其声明为静态

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

并用作

Program.StockSystem 
于 2012-10-16T13:57:46.737 回答
1

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

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

您可以在每个表单的代码中访问您的 StockControl。但是如果你不给它分配一些东西,它将是空的(即空)。这是我在打开表格之前要做的事情。如果你在你的主要方法中:

frmSuppliers frmToOpen = new frmSuppliers();
frmSuppliers.StockCtrl = StockSystem;
frmSuppliers.Show();
于 2012-10-16T14:38:21.660 回答