変数をパラメーターとして渡すだけで、Windowsフォーム間で変数を渡すことに慣れています。これで、既に開いているフォーム(FormMain
と呼びましょう)と、ダイアログ(FormTask
)のように機能する別のフォームがあります。ユーザーは、FormTask
に関する情報を入力するまで、メインフォームを操作できません。 FormTask
には単純に1つのテキストボックスが含まれ、このテキストボックスの値はFormMain
に返され、変数として追跡されます。 FormTask
にはパラメーターexerciseType
が必要です。 FormTask
が開くと、このパラメーターの値がチェックされ、それに応じてテキストボックスのデフォルト値が設定されます。これはすでに機能しており、すでに開いているMainForm
に文字列値を返す方法については、まったく無知です。これらのダイアログはDialogResults
を返すことができるだけのようですが、これは私が求めているものではありません。私もあまり経験がないので、自分のカスタムダイアログを作成するためにいじくり回すのは避けたいです。
FormMain:
FormTask formTask = new FormTask(exerciseType);
formOpgaveInvoker.ShowDialog();
FormTask:
private void button1_Click(object sender, EventArgs e)
{
string opgave = textBoxOpgave.Text;
// return string value to MainForm here
}
FormTaskでパブリックプロパティを作成する
public string Opgave { get {return textBoxOpgave.Text;}}
ShowDialog();の後で確認してください。
FormTask formTask = new FormTask(exerciseType);
formOpgaveInvoer.ShowDialog();
formOpgaveInvoer.Opgave; // here it is
これを行う最も簡単な方法は、フォームクラスにパブリックプロパティを追加して文字列を返すことです。
_public string opgave
{
get;
private set;
}
_
ダイアログが閉じるときにこのプロパティに割り当て、ShowDialog()
を呼び出したコードからプロパティを読み取ります。
_private void button1_Click(object sender, EventArgs e)
{
opgave = textBoxOpgave.Text;
}
...
FormTask formTask = new FormTask(exerciseType);
formOpgaveInvoker.ShowDialog();
DoSomething(formTask.opgave);
_
フォームは単なる通常のクラスです。つまり、その中にプロパティを作成できます。
So:プロパティを作成し、それに値を割り当てます。
プロパティをFormTask
に追加します。例:String1
like
public string String1 {get; set;}
たとえば、String1の値をbutton1_Click
に設定します。
あなたはMainFormでそのプロパティにアクセスできます
FormTask formTask = new FormTask(exerciseType);
formOpgaveInvoer.ShowDialog();
string str = formTask.String1;