Member 12699376 Ответов: 1

Как передать переменную из одного класса в другой.


Привет,

Мне нужно заменить некоторые слова в документе word в " form2 "пользовательским вводом, который он вводит в" inputinfo.cs", и я не могу ссылаться на него.

таким образом, в Form2.cs должно появиться следующее, Но я не могу ссылаться на переменные sowname, cuslongname,cusaddress,engagementnum, quotenum, todaysdate:


// Find Place Holders and Replace them with Values.
             this.FindAndReplace(wordApp, "<name>", sowname);
             this.FindAndReplace(wordApp, "<address>", cuslongname);
             this.FindAndReplace(wordApp, "<city>" , cusaddress);
             this.FindAndReplace(wordApp, "<state>", engagementnum);
             this.FindAndReplace(wordApp, "<zip>", "todaydate");
             this.FindAndReplace(wordApp, "<company>", quotenum);



Спасибо!

1 Ответов

Рейтинг:
0

OriginalGriff

Это потому что они являются локальными переменными:

public void Submit_Click(object sender, EventArgs e)
    {
    string sowname;
    string cuslongname;
    string cusaddress;
    string engagementnum;
    string quotenum;
    string todaydate;
    string serviceagr;
    string serviceagrdate;
    string sename;
    string senum;
    string seemail;
    string setitle;
    ;
    
    sowname = SoWName.Text;
    cuslongname = CusLongName.Text;
    cusaddress = CusAddress.Text;
    engagementnum = EngagementNum.Text;
    quotenum = QuoteNum.Text;
    todaydate = TodayDate.Text;
    serviceagr = ServiceAgr.Text;
    serviceagrdate = ServiceAgrDate.Text;
    sename = SEName.Text;
    senum = SENum.Text;
    seemail = SEemail.Text;
    setitle = SETitle.Text;
    }

Все эти переменные являются локальными для метода нажатия кнопки: это означает, что они доступны только в теле метода и отбрасываются, когда метод заканчивается.
Вместо этого сделайте их свойствами, и вы сможете получить к ним доступ из формы otehr:
public string SoWName { get; private set; }
public string CusLongName; {get; private set; }
...
public void Submit_Click(object sender, EventArgs e)
    {
    SoWName = SoWName.Text;
    CusLongName = CusLongName.Text;
    ...
    }


Richard Deeming

Вы можете столкнуться с трудностями, если свойства имеют то же имя, что и элементы управления. :)

OriginalGriff

ГМ ... упражнение для читателя? :О

Ненавижу, когда я это делаю - вот почему я до сих пор использую "слегка венгерские" соглашения об именах для элементов управления: txtName, butDoIt, labStatus и т. д.

Member 12699376

Привет, спасибо за попытку помочь, я все еще не могу сослаться на это, хотя, пожалуйста, не могли бы вы привести пример того, как ссылаться на одну переменную в другой форме?

я обновил код выше в разделе " Что я пробовал"

OriginalGriff

Взгляните на это:
http://www.codeproject.com/Tips/548052/Transferring-information-between-two-forms-Part
http://www.codeproject.com/Tips/548131/Transferring-information-between-two-forms-Part
http://www.codeproject.com/Tips/548160/Transferring-information-between-two-forms-Part
Я предполагаю, что средний - это тот, который вам нужен.