2016-09-14 6 views
-1

C# VB.NET/VBA開発者として長年働いています。現在オフサイト作業員のためのアプリケーションに取り組んでいます。私はプロジェクト番号のドロップダウンを持つメインのスイッチボードフォームを持っています。ユーザーは、さまざまなフォームベースのツールを開き、予算フォームを含めることができます。ドロップダウンの変更には、プログラムスコープのクラス変数cJobが複数のプロパティ(顧客、場所など)を格納して格納されています。予算フォームのオープンに:ユニーク変数を持つWinFormsマルチインスタンスフォーム

Form frm = new FieldBudgets.frmBudgets().Show(); 

私はcJobのプライベート静的インスタンスを持っている(新しいcJob)meJobと呼ばれます。 スイッチボードに戻ると、Budget forのインスタンスを閉じることなく、別のプロジェクト番号を選択して同じ予算フォームのインスタンスを開くことができます。 [更新]ボタンは、[予算]フォームのデータを更新できますが、最後のインスタンスからの新しいmeJob情報は他のインスタンスに持ち込まれます。どうすればこれらを別々に保つことができますか?私は新しいmeJobが個々のインスタンスに固執すると思った。

私は、隠されたテキストボックスを含み、新しいmeJobをリフレッシュで再読み込みする魅力的ではない「ソリューション」を持っています。それは私が得る最善の解決策であるので、それが...

MJ

+0

サブフォームをメインフォームクラススコープのDictionary にし、クリックしたボタンでキーを参照できます。 –

答えて

-1
Dictionary<string,FieldBudgets.frmBudgets> myBudgets = new Dictionary<string,FieldBudgets.frmBudgets>(); 
myBudgets.Add("Budget1",New FieldBudgets.frmBudgets()); 
myBudgets.Add("Budget2",New FieldBudgets.frmBudgets()); 
myBudgets.Add("Budget3",New FieldBudgets.frmBudgets()); 
myBudgets.Add("Budget4",New FieldBudgets.frmBudgets()); 

myBudgets["Budget2"].Show(); 

場合はfrmBudgetsのために任意のユニークなフィールドおよび/またはコンストラクタのプロパティを置くかもしれません。

+0

辞書に精通していない(Googleによって学ぶ)が、私はこのアドバイスに従っていない。 frmBudgetsのmeJobのインスタンスはどのようにDictionaryアイテムに変換されますか? frmBudgetsの個々のインスタンスが特定のIDを「記憶」していないのはなぜですか? –

+0

辞書は、同じオブジェクトの複数のインスタンスを一度に開いて、キー(文字列、intまたは任意の固有の項目)にアクセスできるようにする方法です。 MyForm1、myForm2、myForm3などを作成するよりも簡単です –

+0

これは辞書のコンセプトです。しかし、辞書が "呼び出しページ"上に保持されて実装されている場合、それがどのように辞書 "ページ"に関連しているのかわからない。 –

関連する問題