2017-10-06 3 views
0

J'ai Form1 et Form2, dans Form1 j'ai quelques zones de texte comme nom d'utilisateur, mot de passe et plus ... et une zone de texte "région". Lorsque l'utilisateur tape "region" (Form1.hide()), alors Form2 s'ouvre avec 5 étiquettes avec les noms des régions. Alors, comment puis-je faire que lorsque l'utilisateur clique sur un nom de région dans Form2, Form1 aura la région sur elle?Comment afficher un formulaire existant à partir d'un autre formulaire?

et conserve toutes les données que l'utilisateur a saisies avant que la région ne clique.

quelque chose comme ça (sous forme 2):

private void center_Click(object sender, EventArgs e) 
    { 
     this.Hide(); 
     Form1.region = "center"; 
     Form1.show(); 
    } 
+0

Vous avez juste besoin de souscrire l'événement FormClosing du formulaire. Quand il se déclenche, et e.Cancel est faux, alors vous savez qu'il est sur le point de mourir, donc c'est une bonne idée d'appeler cela.Show(). Méfiez-vous que FormClosed sonne comme une meilleure idée, mais il est trop tard et la fenêtre d'une autre application pourrait être mise au point. Notez également que peu d'applications que vous utilisez tous les jours le font, elles ont généralement une fenêtre principale et basculent le contenu à l'intérieur de la fenêtre. Comme UserControl vous aide à faire. –

Répondre

0

Le formulaire 2

private void center_Click(object sender, EventArgs e) 
{ 
    Form1 frm1 = new Form1(); 
    frm1.textbox_region = whateverobject.text; 
    this.hide(); 
    frm1.show(); 
} 

cela apportera un form1 avec le texte de la région à ce sujet.

0

Essayez de créer une instance de Form2 et d'appeler ShowDialog() méthode pour montrer

Form2 form2= new Form2(); 
form2.ShowDialog(); 
0

Lors de la création Form2, il suffit de passer Form1 en tant que paramètre et modifier la valeur de votre zone de texte en cas de clic.

Sur form1:

private void click_on_region(object sender, EventArgs e) 
{ 
    this.Hide(); 
    Form2 frm2 = new Form2(this); 
    Form2.Show(); 
} 

sur form2:

Form1 _frm1; 
public Form_Main(Form1 frm) 
{ 
    InitializeComponent(); 
    _frm1 = frm; 
} 
private void center_Click(object sender, EventArgs e) 
{ 
    this.Hide(); 
    _frm1.textBox_region.Text = whateverobject.Text; 
    _frm1.Show(); 
} 

Cela pourrait ne pas être la plus jolie, mais ça va le faire pour commencer.

0

Formulaire 1 Code

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 


    private void button1_Click(object sender, EventArgs e) 
    { 
     Form2 objForm2 = new Form2(); 
     objForm2.ShowDialog(); 
     textBox_Region.Text = objForm2.RegionName; 
    } 
} 

Et Forme 2 Code

public partial class Form2 : Form 
{ 
    public string RegionName 
    { 
     get 
     { 
      return textBox_Form2_Region.Text.ToString(); 
     } 
     set { } 

    } 
    public Form2() 
    { 
     InitializeComponent(); 
    } 
}