Как я могу получить значение текстового поля и сохранить его вне FORM.cs в методе класса, чтобы я мог показать это значение на этикетке? Это просто для тестового приложения. Я хочу иметь код, независимый от графического интерфейса.

Вот что я пробовал:

Form.cs

private void button4_Click(object sender, EventArgs e)
{                       
     cueTextBox2.Text = value;
     Calling cal = new Calling();
     cal.setntags(value);
}

Calling.cs

public string setntags(string value)
{                
     value = tag1;
     MessageBox.Show("done");
     return tag1;    
}
-3
Deep Siddharth Verma 2 Янв 2016 в 12:12

2 ответа

Лучший ответ

Вот ответ .. что я нашел

           private void button4_Click(object sender, EventArgs e)
            {
            int retVal;
            string local;
            Calling cal = new Calling();
            local = cueTextBox2.Text;
            retVal = cal.setNtagsDummy(ref local);
          if (retVal == 0)
            {
            label13.Text = cueTextBox2.Text;
             }

И в файле класса

    public int setNtagsDummy(ref string setndum)
    {
      int retVal;
        Console.WriteLine("done");
        setndum = "";
        retVal 0;
    }
1
Deep Siddharth Verma 4 Янв 2016 в 10:36

В setintags вы присваиваете value значение tag. Поскольку вы передаете копию button4_Click.value, она не изменится к концу функции. Если вы хотите изменить значение value, вам необходимо сделать следующее:

public string setntags(ref string value)
{
    MessageBox.Show("Done.");
    return value = tag1;
}

И назовите это как cal.setntags(ref value)); Ключевым моментом здесь является ключевое слово ref, которое позволяет вам передавать переменную по ссылке, что позволяет вам изменять ее значение в функции.

Однако, если вы хотите сохранить значение value в tag1, вам нужно сделать следующее:

public string setntags(string value)
{
    MessageBox.Show("Done");
    return tag1 = value;
}

Присваивание присваивает левой части оператора присваивания значение правой части.

1
AustinWBryan 2 Янв 2016 в 09:39