0

誰かが行ってこの質問を重複としてマークする前に、私の問題は他の問題とは異なると言いたいです。別のフォームから既存のフォームを開こうとしていますが、一部のフォームを他のフォームを「ホスト」するように設定したという意味で問題があります (それらの間で変数を転送するため)。これが私が意味することです:

 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;

    }
4

1 に答える 1