誰かが行ってこの質問を重複としてマークする前に、私の問題は他の問題とは異なると言いたいです。別のフォームから既存のフォームを開こうとしていますが、一部のフォームを他のフォームを「ホスト」するように設定したという意味で問題があります (それらの間で変数を転送するため)。これが私が意味することです:
public partial class Schedule_Tasks : Form
{
readonly Schedules schedules;
public Schedule_Tasks(Schedules host)
{
this.schedules = host;
InitializeComponent();
}
このコード スニペットでは、Schedules フォームから Schedule_Tasks フォームにいくつかの変数の値を取得しようとしています。そこで、「ホスト」システムを使用しました。これまでのところ、この方法は正常に機能しますが、「ホスティング」されていない別のフォームから特定のフォームを開こうとすると問題が発生します。たとえば、次を使用します。
new Schedules().Show();
したがって、明らかにこれを宣言するときは、Schedules の後の括弧内に「this」のようなものを入れますが、フォームが「ホスト」フォームの外で呼び出されている場合、それは機能しません。足りないものや変更できるものはありますか?分かりにくい部分がありましたら、説明が難しいので教えてください。どんな助けでも大歓迎です、乾杯。
編集
これが私が今取り組んでいるコードです:
public partial class Schedual_Tasks : Form
{
readonly Scheduals scheduals;
public string selectedDevice;
public string getPath;
public string totalPath;
public Schedual_Tasks(Scheduals host)
{
this.scheduals = host;
InitializeComponent();
selectedDevice = scheduals.itemSelected;
}
private void Schedual_Tasks_Load(object sender, EventArgs e)
{
}
private void changeDirectory_Click(object sender, EventArgs e)
{
new Folder_Browser(this).Show(); //Error Occurs here
}
}
そして、ここにFolder_Browserのコンストラクターがあります。これは、私が呼び出そうとしているフォームです:
readonly Back_up_Options backOptions;
public string deviceSel;
public Folder_Browser(Back_up_Options host)
{
InitializeComponent();
this.backOptions = host;
deviceSel = backOptions.deviceSel;
}