1

私は次のことを理解するのに苦労しています。現在、メイン クラスと 1 つのメイン クラスの 3 つのフォームがあります。

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 にアクセスできます。ただし、何かを割り当てないと空 (null) になります。これは、フォームを開く前に行うことです。メインメソッドにいる場合:

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