私は一度にアクティブにしたい3つのフォームを持っています。
最初のフォームは、他の2つを起動するために使用されるメインウィンドウです。私が直面している問題は、データ転送です。これは、.ShowDialog();
を使用してデータを起動して転送するときに機能します。
しかし私はフォームがそのウィンドウへのアクセスをロックしないようにしたい。フォーム.Show();
を使用すると、デフォルトの "0"としてデータが転送されます。とにかくこれの周りにはありますか?
ユーティリティウィンドウなど、同じ結果を得るためのより良い方法はありますか?
私の最終目標は、最初のフォームに変数を格納する別々のアクティブなウィンドウを持つことです。マルチフォームの問題
public partial class CH_Info : Form
{
private Ch_Creation MyChcreation;
public CH_Info()
{
InitializeComponent();
MyChcreation = new Ch_Creation();
}
private void UpdateBtn_Click(object sender, EventArgs e)
{
//this grabs the text from the CH_Creation's STR,DEX,CON,INT,WIS,CHA Total Label
StrResLbl.Text = MyChcreation.StrTotalLbl.Text;
DexResLbl.Text = MyChcreation.DexTotalLbl.Text;
ConResLbl.Text = MyChcreation.ConTotalLbl.Text;
WisResLbl.Text = MyChcreation.WisTotalLbl.Text;
IntResLbl.Text = MyChcreation.IntTotalLbl.Text;
ChaResLbl.Text = MyChcreation.ChaTotalLbl.Text;
}
This is using CH_Info MyChInfo = new CH_Info(); MyChInfo.Visible = true;とthis is using .ShowDialog();(ダイアログボックスが閉じられている場合、それが動作する唯一の方法がある)
目標は、他の二つの形式が、私は外に出て、再できるユーティリティウィンドウとして機能させることですプログラムが終了するまでデータを保持したままオープンします。
現在、にデータを返すのはform3
のみです。しかし、最初のフォームに変数を格納することが分かっていれば、私は自分が望むものを達成することができます。私はそれらを再度開いたときにもう一方のフォームにデータを戻すことです。しかし明らかにするために、私の現在の問題は、すべての3つのフォームを使用せずにアクティブに保つことです.ShowDialog();
と私は前に言ったように、私は使用しないで細かい長い間に転送することができます.Show();
ありがとう助けてくれています。
あなたはクラスのインスタンスであるかを理解する必要があります。また、複数のインスタンスが存在する可能性があり、1つのインスタンスのデータが別のインスタンスの同じデータではない理由。 _MyChcreation = new Ch_Creation();を記述すると、Ch_Creationクラスの新しいインスタンスが作成されます。既に表示されているフォームと同じインスタンスではありません – Steve
同じインスタンスを作成する別の方法はありますか? – AnimalChubs
あなたのアプリには常にCH_Creationタイプのフォームが1つしかありません。 – Steve