ほとんどのUI要素を含むメインのWinFormを実行していて、[追加]ボタンを選択するとAddフォームが呼び出されます。それは入力を受け取り、受け入れられたらそれをWinFormに送り返すべきです。クロスクラス通信
このコードは、メインクラス上の「追加」ボタンをクリックしたときに実行されます。
public void addButton_Click(object sender, EventArgs e)
{
AddView newadd = new AddView();
newadd.Show();
}
(メインクラス)このコードAddViewでボタンに基づいて実行する必要があります:
public void AddDashObject(string dashName, string dashIdentifier, int dashFunction, string dashFunctionInfo, int dashVerbosity)
{
DashObject tmp = new DashObject("","",0,"",0);
tmp.DashName = dashName;
tmp.DashIdentifier = dashIdentifier;
tmp.DashFunction = dashFunction;
tmp.DashFunctionInfo = dashFunctionInfo;
tmp.DashVerbosity = dashVerbosity;
dashloaded.Add(tmp);
ReloadDashObjects();
}
私はフォーム間のやりとりの仕方がわかりません - メインクラスで作成されたタイプとメソッドを使用できますが、別のインスタンスを作成していると思います。既存のものとどのように通信できますか?
MainView mnfrm = new MainView();
MainView.DashObject tmp = new MainView.DashObject("","",0,"",1); // Defaults
private void button1_Click(object sender, EventArgs e)
{
mnfrm.dashloaded.Add(tmp); // Add the default DashObject to MainView's currently loaded DashObjects
mnfrm.ReloadDashObjects(); // Reload the list
}
これをどのように進めるのか分かりません。
Addフォームはモーダルであると想定されているため、ユーザーがAddフォームに入力したときにメインフォームが「ロック」されるか、またはパラレルで動作するのでしょうか? –
MainFormからAddFormへの参照を送信し、そこでMainFormの参照を使用します。 –
@MattiasÅslund - ちょうど非モーダル関数の私の偶然の使用に気づいた。それはモーダルでなければなりません(また、ShowDialogを使用します) – Quartzic