Как получить значение strValue и прочитать в Form1_Load?

#c# #winforms

#c# #winforms

Вопрос:

У меня один вопрос. Существует 2 формы (Form1 и Form2).

Form1 и Form2 содержит 1 текстовое поле и 1 кнопку. После запуска приложения, нажав a buttonForm1 , откроется form2 .

Пользователь пишет «Привет» в textboxForm2 , и после этого пользователь нажимает на buttonForm2 Form2, который скроется, и появится «Привет» textboxForm1 .

Итак, мой следующий план, я хочу добавить label1.Text в Form1. Это label1.Text будет считываться так же, как textboxForm1 и , и label1.Text помещается в private void Form1_Load(object sender, EventArgs e)

Согласно приведенному ниже коду, strValue = "Hello" , Как сделать label1.Text = strValue в Form1_load ?

Когда я запускаю приложение. Появляется ошибка: strValue does not exist in the current context .

  //Form1
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        //Error 
        label1.Text = strValue;
    }
    public void PassValue(string strValue)
    {
        textBox1.Text = strValue;
    }
    private void button1_Click(object sender, EventArgs e)
    {
        Form2 objForm2 = new Form2(this);
        objForm2.Show();
    }
}

 //Form2
 public partial class Form2 : Form
{
    Form1 ownerForm = null;
    public Form2(Form1 ownerForm)
    {
        InitializeComponent();
        this.ownerForm = ownerForm;
    }
    private void button1_Click(object sender, EventArgs e)
    {
        this.ownerForm.PassValue(textBox1.Text);
        this.Hide();
    }
    private void button2_Click(object sender, EventArgs e)
    {
        this.Hide();
    }
    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }
}
 

Мой ожидаемый результат — label1 .Текст будет читаться так же, как (textboxForm1) и label1 .Текст помещается в private void Form1_Load(отправитель объекта, EventArgs e).

Ответ №1:

strValue является локальным для вашего PassValue метода. По сути, ваш PassValue определяется как «все, что передается здесь в качестве параметра, давайте вызовем это strValue внутри этого метода«. Form1_Load это другой метод. Он ничего не знает о PassValue внутреннем материале.