私のアプリケーションでは、1つのフォームがあります。ボタンを押してそのフォームの新しいインスタンスを開くと、次のコードが表示されます(これは最初のアプリケーションの起動時にも実行されます)。
private void Form1_Load(object sender, EventArgs e)
{
if (File.Exists(@"C:\Users\Vlad\Documents\" + this.Text.ToString() +"_Settings_Save.rtf"))
{
try
{
richTextBox2.LoadFile(@"C:\Users\Vlad\Documents\" + this.Text.ToString() + "_Settings_Save.rtf", RichTextBoxStreamType.RichText);
richTextBox1.LoadFile(richTextBox2.Text + @"\" + this.Text.ToString() + "_Save_File.rtf", RichTextBoxStreamType.RichText);
}
catch
{
}
}
else if (File.Exists(@"C:\Users\Vlad\Documents\" + this.Text.ToString() + "_Settings.txt"))
{
richTextBox2.LoadFile(@"C:\Users\Vlad\Documents\" + this.Text.ToString() + "_Settings.txt");
richTextBox1.LoadFile(richTextBox2.Text + @"\" + this.Text.ToString() + "_TestSave.txt");
}
else
{
}
}
private void newToolStripMenuItem_Click(object sender, EventArgs e)
{
double n = Application.OpenForms.Count;
double x = n + 1;
Form1 newForm = new Form1();
newForm.Show();
newForm.Text = "Notables " + x.ToString();
}
新しいインスタンスが開かれると、新しいフォームがform1_loadイベントを実行し、そのファイルをロードすることを期待していました。
このアプリケーションは、節約において普遍的であることを意図しています。つまり、必要な数のインスタンスを開いたり閉じたりすることができ、各インスタンスには、インスタンスが閉じられる前と同じテキストが表示されます。
ご迷惑をおかけしましたことをお詫び申し上げます。
今行く時間です。明日の朝、すべての質問に答えます。今から約6時間。
ありがとうございました。
-編集-これが私がやりたかったことの極端な単純化です。
ユーザーがフォーム1の2つのインスタンスを開いてから、それらを閉じた場合。それぞれを開くと、両方のフォームに最後のクローズからのデータが保存されているはずです
--編集2--さて、これが代わりに起こっていることの単純化です。
アプリケーションは確かに正しく保存されますが、新しいインスタンスは正しいファイルを開きません。最初のインスタンスと同じファイルを開くだけです。しかし、保存ファイルは正しいです。