Wie @Tamas Szabo und @ Danish_k12 Sie geschrieben haben, müssen Sie eine öffentliche Eigenschaft in Ihrer zweiten Form hinzufügen. Klicken Sie auf Laden klicken Sie auf neues Formular2 initialisieren. Aktivieren Sie dann, welches Kontrollkästchen aktiviert ist, und legen Sie die öffentliche Eigenschaft fest, die Sie dem zweiten Formular hinzufügen. Dann im Load-Ereignis des zweiten Formulars, abhängig vom Wert der öffentlichen Eigenschaft, die Sie hinzugefügt haben, zeigen Sie das erste oder zweite Diagramm an. Hier ist, wie Sie dies erreichen können:
Form1 - mit Form2 als privates Feld
namespace WindowsFormsApplication3
{
using System;
using System.Windows.Forms;
public partial class Form1 : Form
{
private Form2 form2;
public Form1()
{
this.InitializeComponent();
this.button_Load.Click += Button_Load_Click;
}
private void Button_Load_Click(object sender, EventArgs e)
{
if(this.form2 != null)
this.form2.Dispose();
this.form2 = new Form2();
if(this.checkBox1.Checked == true)
{
this.form2.IndexOfGraphToShow = 1;
}
if(this.checkBox2.Checked == true)
{
this.form2.IndexOfGraphToShow = 2;
}
if(this.form2.IndexOfGraphToShow == 1 || this.form2.IndexOfGraphToShow == 2)
{
this.form2.Show();
return;
}
MessageBox.Show("Select which graph to show", "Choose graph", MessageBoxButtons.OK, MessageBoxIcon.Error);
form2.Dispose();
}
}
}
Form2:
namespace WindowsFormsApplication3
{
using System;
using System.Windows.Forms;
public partial class Form2 : Form
{
public Form2()
{
this.InitializeComponent();
this.Load += Form2_Load;
}
public int IndexOfGraphToShow { get; set; }
private void Form2_Load(object sender, EventArgs e)
{
if(this.IndexOfGraphToShow == 1)
{
// TODO: Show first graph
}
else if(this.IndexOfGraphToShow == 2)
{
// TODO: Show second graph
}
}
}
}
Eine weitere Sache. Die Verwendung von Kontrollkästchen in Ihrem Fall ist nur dann sinnvoll, wenn Sie beide Grafiken gleichzeitig anzeigen können, da beide Kontrollkästchen aktiviert sein können. Wenn Sie nur eine Grafik anzeigen möchten, sollten Sie die Option set verwenden.
Um zu zeigen, wann jedes Mal auf ein neues Formular geklickt wurde, können Sie das angezeigte Formular in einem privaten Feld speichern. Überprüfen Sie, ob das Feld beim Klicken auf die Schaltfläche nicht null ist. Wenn ja, entsorgen Sie das alte Formular und erstellen Sie ein neues Formular.
können Sie auch prüfen, anstelle von Show von Showdialog verwenden, wenn Sie die zweite Form wie folgt zeigen:
this.form2.ShowDialog();
Dies wird ein Dialogfenster erstellen und Benutzer nicht in der Lage sein, den Knopf der ersten Form zu erreichen solange die zweite Form offen ist.
Vielen Dank für Ihre Hilfe und ich werde es versuchen. – SNP
@ wnvko.Thank Sie für Ihren Code ist sehr viel.Es funktioniert.aber Form 2 erscheint zweimal.Wenn Sie können mir bitte eine Lösung für das.Wir danken Ihnen sehr. – SNP
Ich habe meine Antwort aktualisiert. Es wird jetzt nur eine Form angezeigt. Betrachten Sie auch ShowDialog anstelle von Show, um das Formular – wnvko