2017-01-04 5 views
1

Как обновить открытую форму из другой формы?Обновить форму на Visual Studio 2013 [C#]

Например:

Форма 1

Label (Modifiers = Public) 

Button (To show Form 2) 

Форма 2

Text Box (Enter value for Label and display it on label) 
Button (Sends value to Label) 

Я заметил, что после того, как я вошел значение в текстовом поле, метка не после закрытия формы 2.

+0

вы можете передать в объекте, чтобы сформировать два и установить текст в качестве свойства этого объекта, то вы можете получить к нему доступ из формы. – Jegan

ответ

1

Для C# Winforms, вот как я это сделал.

Форма 1:

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

    private void button1_Click(object sender, EventArgs e) 
    { 
     Form2 oForm = new Form2(); 
     oForm.ChangeLabelText += ChangeLabelText; 
     oForm.Show(); 
    } 

    private void ChangeLabelText(object sender, EventArgs e) 
    { 
     string sText = sender as string; 
     label1.Text = sText; 
    } 

Форма 2:

public partial class Form2 : Form 
{ 
    public event EventHandler ChangeLabelText; 
    public Form2() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     string sText = textBox1.Text; 
     ChangeLabelText(sText, null); 
    } 
} 
+0

Спасибо Аарон! Можете ли вы проверить мой метод? Я ответил на свой вопрос. –

0

что, если я использую этот метод? Есть ли недостаток? или это нормально?

Форма 1: Модификаторы label1 является Public

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

    private void button1_Click(object sender, EventArgs e) 
    { 
     Form2 oForm = new Form2(); 
     oForm.Owner = this; 
     oForm.Show(); 
    } 

Форма 2:

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

    private void button1_Click(object sender, EventArgs e) 
    { 
     (this.Owner as Form1).label1.Text = textBox1.Text; 
    } 
} 
+0

Если вы попросите 10 программистов, как это сделать, вы получите 10 различных способов. Это работает - просто отметьте, что в вашей логике EventHandler больше не нужен и может быть удален из Form2. – Aaron

+0

Упс, я забыл удалить это! хорошо спасибо Аарон! –

 Смежные вопросы

  • Нет связанных вопросов^_^